SQL - 求和空值

时间:2015-09-01 16:38:39

标签: tsql null

我正在努力使用以下脚本为员工提供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

1 个答案:

答案 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