Я пытаюсь использовать часы SUM для 2010 года для сотрудников, использующих следующий сценарий. Некоторые сотрудники могут иметь несколько строк в таблице за тот же год. Хотя поле заполняется 0, если нет часов, общий результат может указывать на NULL. Я использую SQL Standard 2005. Предложения будут оценены.SQL - Summing Null Values
SELECT TOP (100) PERCENT id, year, SUM(ISNULL(Reghours_worked, 0)) AS RegHours, SUM(ISNULL(OThours, 0))
OThours, SUM(RegHours + OThours) AS TotalHours_2010
FROM dbo.hours
WHERE (year = '2010')
GROUP BY id, year
ORDER BY id
``
Результаты ниже:
id Year RegHours OTHours Total Hours
658261 2010 1449 0 1449
752466 2010 1743 0 1743
144444 2010 1750 0 1750
652152 2010 1142 0 NULL
926541 2010 0 0 0
'Выбор TOP (100) ПРОЦЕНТ ид, год, SUM (IsNull (Reghours_worked, 0)) КАК RegHours, SUM (ISNULL (OThours, 0)) OThours, SUM (ISNULL (RegHours, 0) + ISNULL (OThours, 0)) AS TotalHours_2010 FROM dbo.hours WHERE (year = '2010') GROUP BY id, year Order BY я d' – lad2025
вам не нужно 'sum (reghours + othours)' эти значения УЖЕ сумы, и их значения не будут готовы, пока после сгенерированной строки. просто 'reghours + othous как total_hours' должен делать. –