使用pivot在mssql中添加(SUM)行

时间:2015-12-31 19:28:35

标签: sql-server sum pivot

所以我在这里有这个问题 - > http://sqlfiddle.com/#!6/90a35/1我在日历类型视图中显示一些数据。如果我想添加另一列(总计),它将水平相加。即对于项目x,我想显示所有月份的总和。我怎样才能做到这一点?

感谢。

1 个答案:

答案 0 :(得分:1)

尝试这样的事情;你可以在另一个变量中动态构造和列,就像你对@cols

一样
SET @sql = N';WITH temp as (SELECT *
FROM (SELECT ID, CONVERT(char(3), STA_IBF_WeekStartDate, 0) + ''-'' +  
      RIGHT(CONVERT(varchar, YEAR(STA_IBF_WeekStartDate)), 2) AS date, Forecast
FROM Table1) AS D
PIVOT(SUM(Forecast) FOR date IN(' + @cols + N')) AS P) SELECT *, [Sep-16] + [May-16] FROM temp;'

EXEC sp_executesql @sql

我在另一个sqlfiddle

中添加了解决方案