2009/04/10

2개 이상의 서로 다른 컬럼 내용을 가지는 PIVOT 테이블 만들기

SQL을 하다보면 사용자 편의를 위해 PIVOT 테이블을 만들어야 할 필요가 있을 것이다. 그런데 일반적인 PIVOT 테이블을 중첩해야할 필요가 생긴다. 예를 들면 월별 판매 수량 및 판매 금액의 합계를 PIVOT 테이블 하나로 봐야할 때, 같은 경우이다.

SQL SERVER 2008 EXPRESS에서의 나의 처리 방법은 STORED PROCEDURE에서 PIVOT 테이블 두개를 만든 후 서로를 JOIN하여 처리했다. 두개의 PIVOT 테이블 ROW HEAD에 해당하는 열은 서로 일치한다고 가정한다.
예:













이름 1월 2월 3월
1
2

1
3
4
수량 합계 pivot table

예:













이름 1월 2월 3월
1,000
2,000

3,000
6,000
8,000
수량 합계 pivot table

이런 경우에

SELECT [열이름]
FROM
(수량 합계 pivot table
INNER JOIN
금액 합계 pivot table
ON <조건>)

이런 식으로 처리했다. 물론 각 PIVOT TABLE의 열이름은 조금씩 달라져야 한다. 중요한 건 아웃풋이 제대로 되면 되니. ^^

그럼 기대되는 결과는














이름1월수량1월금액2월수량2월금액3월수량3월금액
11,000
22,000

13,000
36,000
48,000


댓글 없음: