現在、レポートの水平方向の合計を取得しようとしています。現在、動的クエリとピボット テーブルを使用しています。以下は私のコードです
宣言 @cols nvarchar(max) 宣言 @pvt_cols nvarchar(max) 宣言 @sqlquery nvarchar(max)
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,'+@cols + ',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
合計を取得できますが、レコード全体の合計が表示されますが、ユーザーが入力した日付に応じて合計を取得するだけで済みます。