0

過去 3 年間のコースのすべての時間を合計するという質問があり、年と合計のケースを把握するのに苦労しています。

規範は

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 年の合計時間の列が必要です。

4

1 に答える 1

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 関数を見てください。

于 2013-09-26T19:43:13.693 に答える