Sum datediff和group by

时间:2011-09-20 00:51:04

标签: sql group-by datediff

我有这个简单的查询,但它没有产生我想要的结果...希望你可以提供帮助:

结果是:

Construction        2
Construction        3
Emergency Funds     4
Housing             5
Seniors Services    9
Seniors Services    185

我想要的是:

Construction     5
Emergency Funds  4
Housing          5
Seniors Services 194


SELECT T.NAME, SUM(DATEDIFF (HH,T.DATE_DUE,T.DATE_START))as Donation_Hours FROM TASKS T 
 GROUP BY t.name, T.DATE_DUE,T.DATE_START
 order by name

2 个答案:

答案 0 :(得分:4)

试试这个:

SELECT T.NAME, SUM(DATEDIFF(HH,T.DATE_DUE,T.DATE_START))as Donation_Hours 
FROM TASKS T  
GROUP BY t.name
ORDER BY name 

答案 1 :(得分:0)

斯坦,一些额外的细节将帮助您解决这个问题。特定的数据库平台,一些示例数据,以及在比较结果和期望结果时的含义,应至少包括在内。

话虽如此,我认为你暗示这样一个事实,即你有多个名称实例,而不是每个名字的单个结果,总共有小时差异。如果这是您的问题,您可以通过在t.name之后删除组中的所有内容来修复它。您不需要将聚合的组成元素放在group by子句中,就像您单独列出它们一样。

我假设您通过SSMS使用MSSQL。根据SQL2008 R2检查了这个答案。