我正在努力使用以下脚本为员工提供2010年的工作时间。有些员工可能在同一年的表格中有多行。虽然如果没有小时,字段将填充为0,但总结果可能表示为NULL。我正在使用SQL Standard 2005.建议将不胜感激。
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
答案 0 :(得分:1)
SELECT TOP (100) PERCENT id, year, SUM(ISNULL(Reghours_worked, 0)) AS RegHours,
SUM(ISNULL(OThours, 0)) AS OThours,
SUM(ISNULL(Reghours_worked, 0)+ ISNULL(OThours, 0)) AS TotalHours_2010
FROM dbo.hours
WHERE (year = '2010')
GROUP BY id, year
ORDER BY id