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 回答