我有 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)
现在,如果我分别运行这两个查询,我分别得到 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)
此处也存在相同的关键差异,请注意其中一个具有 IS NULL 和另一个 IS NOT NULL的区别
现在有人现在为什么会发生这种情况?我可能的错误是什么导致第一次提到的查询不返回所有 881 结果?
数据库管理器:SQL Server 2008 R2 和 SSMS 日期格式(如果需要):YYYY-MM-DD HH:MM:SS.000