У меня есть таблица, называемая #MonthlySales, которая вытягивает ItemNumber, MonYearNum & UnitsSold. Я повернута это с помощью следующего сценария:SQL Server Pivot Table - Dynamic
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]
ИЗ #MONTHLYSALES PIVOT ( СУММА (UNITSSOLD) ДЛЯ MONTHYEARNUM В ( [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
Как вы можете видеть, столбец MonthYearNum жестко закодирован в значения, такие как 1-2011. Однако я не могу их жестко кодировать, поскольку они динамичны - в зависимости от того, в какой день этот отчет запущен, разные значения MonthYearNum будут возвращены из таблицы #monthlysales.
Есть ли способ для меня динамически поворачивать возвращаемые значения?
TIA
Эй, спасибо. В вашем примере, как выглядит функция GetTableColumnNames? – Rivka
Это была функция, определяемая человеком, отправляющим вопрос - ах, код для него указан выше, в актуальном вопросе. –