2013-09-26 93 views
0

我有一個查詢,在過去的3年中我將所有課程的時間加在一起,並且在計算出來時我無法獲得年度和總結案例。使用YEAR和SUM CASE WHERE

代碼是

SELECT TNG_MDA_TYP_CD, SUM(LEN_HRS_ST) AS Expr1, REC_EFF_STT_DT 
FROM dbo.COL_TBL_VCOURSE_NEW 
GROUP BY TNG_MDA_TYP_CD, REC_EFF_STT_DT 

REC_EFF_STT_DT是已提供的過程中的時間和LEN_HRS_ST是的小時總數。我無法弄清楚如何將YEAR函數與SUM CASE WHEN結合起來。我需要每年的專欄,以及2010年,2011年和2012年的總時間。問題後

回答

1

編輯澄清:

SELECT 
TNG_MDA_TYP_CD, 
Sum2010 = SUM(CASE WHEN DATEPART(YEAR, REC_EFF_STT_DT) = 2010 THEN LEN_HRS_ST ELSE 0 END), 
Sum2011 = SUM(CASE WHEN DATEPART(YEAR, REC_EFF_STT_DT) = 2011 THEN LEN_HRS_ST ELSE 0 END), 
Sum2012 = SUM(CASE WHEN DATEPART(YEAR, REC_EFF_STT_DT) = 2012 THEN LEN_HRS_ST ELSE 0 END) 
FROM dbo.COL_TBL_VCOURSE_NEW 
GROUP BY TNG_MDA_TYP_CD 

這是假設你從字面上希望資金用於2010年,2011年和2012年,你說。對於更具動態性的內容,請查看PIVOT功能。

+0

對不起,我打算添加我需要的時間總和2010,2011和2012的專欄。 – user2119980

+0

澄清後編輯我的初步答案。 –