我有一個名爲#MonthlySales的表,它提取ItemNumber,MonYearNum & UnitsSold。我此樞轉用下面的腳本:SQL Server數據透視表 - 動態
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]
FROM #MONTHLYSALES PIVOT ( SUM(UNITSSOLD)FOR MONTHYEARNUM IN ( [1-2011],[2-2011],[3- 2011-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] ) )AS TOTSOLDPERMONTH ORDER BY ITEMNUMBER
正如您所看到的,MonthYearNum列被硬編碼爲像1-2011這樣的值。不過,我無法對這些進行硬編碼,因爲它們是動態的 - 取決於運行此報表的哪一天,將從#monthlysales表中返回不同的MonthYearNum值。
有沒有辦法讓我動態地調整返回的值?
TIA
嘿,謝謝。在你的例子中,GetTableColumnNames函數會是什麼樣子? – Rivka
這是一個由發佈該問題的人定義的函數 - 在上面列出了實際問題中的代碼。 –