我是 ESRI SQL 用户,所以我的查询必须以SELECT * FROM tablename WHERE
:
我有带有日期/时间字段(称为 timedate)的基于 GPS 的车辆记录(扫雪机),我需要 A.)根据单独表中的整数字段选择前 x 小时内发生的记录或B.) 根据单独表中的日期/时间字段选择比日期/时间新的记录。如果是案例 A,那么案例 B 中的字段将为空。如果是案例 B,那么案例 A 中的字段将为 0。
这是我为案例 A 写的内容。
SELECT * FROM myDataTable
WHERE(DATEDIFF(hh, TimeDate, GETDATE()) <= (select NumberofHours from myHoursControlTable where District = 2)
AND Fleet = 'District 2'
AND NOT [Speed] = 0
AND ([AssetDesc] LIKE 'Sander/Plow%' AND Input2On = 'On' AND Input1On = 'On'))
这就是我为案例 B 写的内容。
SELECT * FROM myDataTable
WHERE(TimeDate <= (select StartTime from myHoursControlTable where District = 2)
AND Fleet = 'District 2'
AND NOT [Speed] = 0
AND([AssetDesc] LIKE 'Sander/Plow%' AND Input2On = 'On' AND Input1On = 'On'))
他们都工作,但有人可以帮我把它放在一起吗?当我尝试使用 case 语句时,我不断收到错误消息:“当 EXISTS 未引入子查询时,选择列表中只能指定一个表达式。” 我也有必须以“Select *”开头的限制,因为我在 ESRI 定义查询中执行此操作。
任何帮助表示赞赏。