У меня есть таблица темпа (см. Изображение) и столбцы Количество аварий и число предупреждаемых аварий должно отображать данные, однако они появляются как все NULL. Как это исправить? СпасибоПредупреждение: исключается нулевое значение
0
A
ответ
0
Причина происходит потому, что вы делаете агрегацию с использованием нулевых значений
Поясню на примере, как показано ниже:
create TABLE #test (ID INT, Qty INT, Price MONEY)
INSERT INTO #test (ID, Qty, Price) SELECT 1, 25, 100
INSERT INTO #test (ID, Qty, Price) SELECT 2, NULL, 200
INSERT INTO #test (ID, Qty, Price) SELECT 3, 5, NULL
SELECT SUM(Qty) FROM #test WHERE ID IN (1,3)
-- no warning
--Because qty in id 1,3 is not null
SELECT SUM(Price) FROM #test WHERE ID IN (1,3)
-- Warning: Null value is eliminated by an aggregate or other SET operation.
-- Because price 100 is added with NULL
SELECT AVG(Qty) FROM #test WHERE ID IN (1,2)
-- Warning: Null value is eliminated by an aggregate or other SET operation.
-- Because qty is null + 25 to get average
+1
Но OP использует ISNULL для всех агрегатов .... следовательно, проблема не должна отображаться в показанном фрагменте. – scsimon
Смежные вопросы
- 1. Предупреждение: Нулевое значение устраняется агрегатной или другой SET операции
- 2. Ошибка в хранимой процедуре Нулевое значение исключается агрегированием или другой операцией SET.
- 3. Предупреждение: Деление на нулевое сообщение
- 4. Нулевое значение
- 5. array_shift показывает предупреждение, если переменная имеет нулевое или пустое значение
- 6. SelectSingleNode возвращает нулевое значение
- 7. Как удалить нулевое значение?
- 8. Json возвращает нулевое значение
- 9. Нулевое значение по параметру
- 10. FieldInfo.GetValue возвращает нулевое значение
- 11. getStringExtra возвращает нулевое значение
- 12. переменных проходит нулевое значение
- 13. IntentService показать нулевое значение
- 14. getpathtranslated возвращает нулевое значение
- 15. Установить нулевое значение объекту
- 16. Нулевое значение счетчика программ
- 17. viewParam возвращает нулевое значение
- 18. форма представляет нулевое значение
- 19. ExecuteScalar Retuns Нулевое значение
- 20. GsmCellLocation дает нулевое значение ..?
- 21. XPathSelectElements возвращает нулевое значение
- 22. ошибка в нулевое значение
- 23. нулевое значение в getIntent.getExtras.getString()
- 24. Недвижимость получает нулевое значение
- 25. ViewPagerAdapter показывает нулевое значение
- 26. Eval(), отображающее нулевое значение
- 27. @Autowired возвращает нулевое значение
- 28. NSDateFormatter, возвращающее нулевое значение
- 29. JSpinner получает нулевое значение
- 30. нулевое значение в Java
Вы уверены, что это, где он бросает предупреждение? Вы отделили эту часть кода от другого окна SSMS? Независимо от того, хотите ли вы избавиться от предупреждения, вы можете «УСТАНОВИТЬ ANSI_WARNINGS OFF GO». Но я уверен, что это не то место, откуда приходит ваше предупреждение. – scsimon
Ваша LEFT JOIN эффективно INNER, потому что предикат WHERE требует, чтобы левый столбец таблицы не был NULL. Наверное, это проблема. Предупреждение в порядке см. Http://stackoverflow.com/questions/18719436/getting-warning-null-value-is-eliminated-by-an-aggregate-or-other-set-operation – Serg
Что представляет собой следующий фрагмент кода для окончательного выбора? – SQLChao