2011-09-20 80 views
0

我有這個簡單的查詢,但它不是生產我想要的結果...希望你能幫助:總和DATEDIFF和group by

結果是:

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 
+1

我想你會需要發佈一些示例數據,以及... – Randy

回答

3

試試這個:

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 
0

斯坦,一些額外的細節將在幫助你解決這個問題很長的路要走。至少應該包括具體的數據庫平臺,一些樣本數據以及您在比較結果和期望時的含義。

這就是說,我認爲你暗指的事實是,你有名稱的多個實例,而不是每個名稱的單個結果,總共有小時差異。如果這是您的問題,您可以通過在t.name後面刪除組中的所有內容來修復它。您不需要將聚合的組成要素放在group by子句中,其方式與您將它們分開列出時相同。

我假設你通過SSMS使用MSSQL。這個答案是針對SQL2008 R2進行檢查的。