0

我有一个名为#MonthlySales 的表,它可以显示ItemNumber、MonYearNum 和UnitsSold。我使用以下脚本对此进行了调整:

选择
    项目编号 [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] 

从 #每月销售 枢 ( SUM(UNITSSOLD) FOR MONTHYEARNUM IN ( [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 等值。但是,我不能对这些进行硬编码,因为它们是动态的 - 根据运行此报告的日期,将从 #monthlysales 表返回不同的 MonthYearNum 值。

有没有办法让我动态地旋转返回的值?

TIA

4

2 回答 2

1

是的——写动态SQL。它很复杂,而不是重写类似的代码(因为我很懒),请参阅我对这个问题的回答以获取示例。它是动态反透视的代码,但概念是相同的。

于 2012-05-03T18:51:16.123 回答
0

或者 - 这是输出到什么?SSRS、报表生成器、Excel 和大多数第三方报表工具将为您进行交叉制表。

于 2012-05-03T18:54:02.910 回答