我有这个简单的查询,但它没有产生我想要的结果...希望你可以提供帮助:
结果是:
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
答案 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检查了这个答案。