0

ItemNumber、MonYearNum、UnitsSoldをプルアップする#MonthlySalesというテーブルがあります。私はこれを次のスクリプトでピボットしました:

選択する
    アイテム番号[SKU]
    、ISNULL([1-2011]、0)[1月11日]
    、ISNULL([2-2011]、0)[2月11日]
    、ISNULL([3-2011]、0)[3月11日]
    、ISNULL([4-2011]、0)[4月11日]
    、ISNULL([5-2011]、0)[5月11日]
    、ISNULL([6-2011]、0)[6月11日]
    、ISNULL([7-2011]、0)[7月11日]
    、ISNULL([8-2011]、0)[8月11日]
    、ISNULL([9-2011]、0)[9月11日]
    、ISNULL([10-2011]、0)[10月11日]
    、ISNULL([11-2011]、0)[11月11日]
    、ISNULL([12-2011]、0)[12月11日]

, ISNULL([1-2012], 0) [Jan 12]
, ISNULL([2-2012], 0) [Feb 12]
, ISNULL([3-2012], 0) [Mar 12]
, ISNULL([4-2012], 0) [Apr 12]
, ISNULL([5-2012], 0) [May 12]
, ISNULL([6-2012], 0) [Jun 12]
, ISNULL([7-2012], 0) [Jul 12]
, ISNULL([8-2012], 0) [Aug 12]
, ISNULL([9-2012], 0) [Sep 12]
, ISNULL([10-2012], 0) [Oct 12]
, ISNULL([11-2012], 0) [Nov 12]
, ISNULL([12-2012], 0) [Dec 12] 

から #MONTHLYSALES ピボット (( 毎月の合計(単位販売) (( [1-2011]、[2-2011]、[3-2011]、[4-2011]、[5-2011]、[6-2011]、[7-2011]、[8-2011]、[9 -2011]、[10-2011]、[11-2011]、[12-2011] 、[1-2012]、[2-2012]、 [3-2012]、[4-2012]、[5-2012]、[6-2012]、[7-2012]、[8-2012]、[9-2012]、[10-2012]、[11 -2012]、[12-2012] )。 )TOTSOLDPERMONTHとして 注文者 商品番号


ご覧のとおり、MonthYearNum列は1-2011のような値にハードコードされています。ただし、これらは動的であるため、ハードコーディングすることはできません。このレポートが実行される日に応じて、異なるMonthYearNum値が#monthlysalesテーブルから返されます。

返される値を動的にピボットする方法はありますか?

TIA

4

2 に答える 2

1

はい、動的SQLを記述します。これは複雑であり、同様のコードを書き直すのではなく('私は怠惰なので)、サンプルについてはこの質問に対する私の答えを参照してください。これは動的なピボット解除のコードですが、概念は同じです。

于 2012-05-03T18:51:16.123 に答える
0

または、これは何に出力されますか?SSRS、レポートビルダー、Excel、およびほとんどのサードパーティのレポートツールがクロス集計を行います。

于 2012-05-03T18:54:02.910 に答える