I have a table, called #MonthlySales, that pulls up ItemNumber, MonYearNum & UnitsSold. I pivoted this with the following script:
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], [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
As you can see, the MonthYearNum column is hardcoded into values like 1-2011. However, I cannot hardcode these, since they are dynamic - depending on which day this report is ran, different MonthYearNum values will be returned from #monthlysales table.
Is there a way for me to dynamically pivot the values that are returned?
TIA