#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) MONTHYEARNUM FOR IN ( [1-2011] [2-2011], [3 : I는 다음 스크립트이 요동 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 테이블에서 반환됩니다.
반환되는 값을 동적으로 피벗 (pivot) 할 수있는 방법이 있습니까?
TIA
안녕하세요, 감사합니다. 귀하의 예제에서, GetTableColumnNames 함수는 어떻게 생겼을까요? – Rivka
이것은 실제 질문에 위 질문에 대한 코드가 게시 된 사람이 정의한 함수입니다. –