0
我正在嘗試獲取報表的水平總和。目前使用動態查詢和數據透視表。下面是我的代碼動態列的水平總和
聲明@cols爲nvarchar(最大) 聲明@pvt_cols爲nvarchar(最大) 聲明@sqlquery爲nvarchar(最大)
select @cols= Coalesce(@cols+',','')
+ 'Coalesce([' +MonthYR+ '],0) AS [' + MonthDescription +'] '
,@pvt_cols=coalesce(@pvt_cols +',','') +' ['+[MonthYR] +']'
from @Calendar
where CASDT between '20110401' and '20111230' (generates column with month headers)
print @cols
print @pvt_cols
print '--------------------'
Set @sqlquery='Select ProdDesc,'[email protected] + ',Total
from (Select ProdDesc,
MonthYr,
NetAmount,
SUM(NetAmount) over (partition by ProdDesc) as Total
from #Comtempt1
) as dat
pivot(
SUM(NetAmount) for MonthYr in
(' + @pvt_cols + '))pvt'
print @sqlquery
exec sp_executesql @sqlquery
我能夠得到總,但它顯示的總爲整個記錄,而我只需要根據用戶輸入的日期得到總數。
我試過了你的查詢,但它只複製了@cols的值我需要添加一個Total列。 這是截圖http://i85.photobucket.com/albums/k42/esr0159/sss-1.jpg – error1692
那麼,屏幕截圖中的「總計」列在哪裏?什麼'print @ sqlquery'顯示? – RichardTheKiwi
我需要補充說,無論如何,我現在能夠創建一個新的查詢。呃您發佈的新「@sqlquery」重複了@cols列中的值。儘管如此,感謝您的幫助:) – error1692