以下のクエリが返すはずの 881 行がありますが、744 行しか返されません。
SELECT MIN(DateTime),AVG(ISNULL((Convert(decimal(10,3),SCR1_EXHAUST_GAS_TEMP)),0))
FROM jmusa_LOG1
GROUP BY DATEPART(HH,DateTime),DATEPART(DD,DateTime)
ORDER BY MIN(DateTime)
これら 2 つのクエリを別々に実行すると、それぞれ 588 と 293 が得られ、必要な 881 に等しくなります。
SELECT MIN(DateTime),AVG(ISNULL((Convert(decimal(10,3),SCR1_EXHAUST_GAS_TEMP)),0))
FROM jmusa_LOG1
WHERE SCR1_EXHAUST_GAS_TEMP IS NULL
GROUP BY DATEPART(HH,DateTime),DATEPART(DD,DateTime)
ORDER BY MIN(DateTime)
上記のステートメントの主な違いは、WHERE ステートメントです。
SELECT MIN(DateTime),AVG(ISNULL((Convert(decimal(10,3),SCR1_EXHAUST_GAS_TEMP)),0))
FROM jmusa_LOG1
WHERE SCR1_EXHAUST_GAS_TEMP IS NOT NULL
GROUP BY DATEPART(HH,DateTime),DATEPART(DD,DateTime)
ORDER BY MIN(DateTime)
同じ重要な違いがここにも当てはまります。1 つは IS NULL で、もう 1 つは IS NOT NULLであることに注意してください。
なぜこれが起こっているのですか?そして、最初に言及したクエリが 881 件の結果をすべて返さない原因となっている可能性のある間違いは何ですか?
DB マネージャー: SQL Server 2008 R2、および SSMS 日付形式 (必要な場合): YYYY-MM-DD HH:MM:SS.000