Запрос не возвращает все результаты

У меня есть 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 Формат даты (, если необходимо ):ГГГГ -ММ -ДД ЧЧ :ММ :SS.000

0
задан jacobronniegeorge 6 July 2012 в 18:18
поделиться