Sql server SQL Server数据透视表-动态
我有一张名为#MonthlySales的桌子,上面有ItemNumber、Mondearneum和UnitsSold。我用以下脚本将其旋转: 从 #月刊 支点 ( 月份的金额(单位:黄金) ( [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] ) )总的来说每个月 订购人 项目编号Sql server SQL Server数据透视表-动态,sql-server,pivot-table,Sql Server,Pivot Table,我有一张名为#MonthlySales的桌子,上面有ItemNumber、Mondearneum和UnitsSold。我用以下脚本将其旋转: 从 #月刊 支点 ( 月份的金额(单位:黄金) ( [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],
如您所见,Monthyernum列硬编码为1-2011之类的值。但是,我不能硬编码这些,因为它们是动态的-根据运行此报告的日期,将从#monthlysales表返回不同的monthyernum值 有没有一种方法可以让我动态地透视返回的值
TIA是--编写动态SQL。这很复杂,与其重写类似的代码('因为我是),不如参考我对的回答来获取示例。这是一个动态unpivot的代码,但概念是相同的。或者-输出到什么?SSRS、报表生成器、Excel和大多数第三方报表工具将为您完成交叉列表 对。SQL中的动态枢轴是keister中的一大难题。嘿,谢谢。在您的示例中,GetTableColumnNames函数是什么样子的?这是一个由发布问题的人定义的函数——啊,上面在实际问题中列出了它的代码。 SELECT ITEMNUMBER [SKU] , ISNULL([1-2011], 0) [Jan 11] , ISNULL([2-2011], 0) [Feb 11] , ISNULL([3-2011], 0) [Mar 11] , ISNULL([4-2011], 0) [Apr 11] , ISNULL([5-2011], 0) [May 11] , ISNULL([6-2011], 0) [Jun 11] , ISNULL([7-2011], 0) [Jul 11] , ISNULL([8-2011], 0) [Aug 11] , ISNULL([9-2011], 0) [Sep 11] , ISNULL([10-2011], 0) [Oct 11] , ISNULL([11-2011], 0) [Nov 11] , ISNULL([12-2011], 0) [Dec 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]