SQL Server Sum表字段基于params

时间:2014-08-18 11:59:48

标签: sql sql-server

我有一个包含12个不同月份值的表格

Table
{
   January INT,
   February INT,
   etc.
}

我需要对特定月份的值求和,我保留在表中的数字(总和的月数从1到12不等):

    DECLARE @Months TABLE
    (
        Number INT
    )

所以我肯定需要一个大案和CTE,但我真的不知道如何实现这个目标。

1 个答案:

答案 0 :(得分:3)

案例陈述不是那么糟糕:

select sum((case when m.month = 1 then Jan else 0 end) +
           (case when m.month = 2 then Feb else 0 end) +
           . . .
           (case when m.month = 12 then Dec else 0 end)
          )
from atable a cross join
     @Months m;

您可能也需要group by。以上内容只返回整个表格的一行。