私は ESRI SQL ユーザーなので、クエリはSELECT * FROM tablename WHERE
:で開始する必要があります。
日付/時刻フィールド (timedate と呼ばれる) を持つ GPS ベースの車両記録 (除雪機) があり、A.) 別のテーブルの整数フィールドに基づいて、過去 x 時間に発生した記録を選択するか、 B.) 別のテーブルの日付/時刻フィールドに基づいて、日付/時刻よりも新しいレコードを選択します。ケース A の場合、ケース B のフィールドは null になります。ケース 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 で導入されていない場合、選択リストで指定できる式は 1 つだけです」というエラーが表示され続けます。また、ESRI 定義クエリでこれを行っているため、「Select *」で開始する必要があるという制限もあります。
どんな助けでも大歓迎です。