Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server数据透视表-动态_Sql Server_Pivot Table - Fatal编程技术网

Sql server SQL Server数据透视表-动态

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],

我有一张名为#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] ) )总的来说每个月 订购人 项目编号
如您所见,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]