현재 SQL 2008 R2 EXPRESS 를 사용하고 있습니다.
고정된 컬럼에 대한 단일행 PIVOT 은 되는데
고정되지 않은 컬럼과 두가지 항목을 번갈아 보여줘야 되는 이슈가 생겼는데
PIVOT을 이용 해서 가능한지요...?
현재 구현 하려고 하는 내용은 아래와 같습니다.
업체코드 | 그룹 | 매출수량 | 금액소계 |
1786 | ABC | 3 | 11,100 |
1786 | AAA | 6 | 96,000 |
1786 | BBB | 13 | 715,000 |
1786 | BBB | 18 | 0 |
1786 | CCC | 18 | 0 |
1786 | CCC | 2 | 0 |
1786 | CDE | 2 | 0 |
1786 | CCC | 3 | 0 |
1786 | DAA | 9 | 0 |
1786 | CCC | 6 | 0 |
1786 | DBD | 8 | 0 |
1786 | CCC | 6 | 0 |
1786 | DAA | 6 | 0 |
1786 | AAA | 13 | 0 |
1786 | BBB | 14 | 81,200 |
1786 | DDD | 17 | 0 |
1786 | EEE | 1 | 3,700 |
1786 | AAA | 80 | 0 |
1786 | BBB | 2 | 0 |
1786 | CCC | 1 | 0 |
1786 | DDD | 5 | 0 |
1192 | AAA | 3 | 70,500 |
1192 | FFF | 150 | 1,450,500 |
위의 쿼리 결과를 아래의 출력으로 변경하려고 합니다.
업체코드 | AAA수량 | AAA금액 | ABC수량 | ABC금액 | BBB수량 | BBB금액 | CCC수량 | CCC금액 | CDE수량 | CDE금액 | DAA수량 | DAA금액 | DBD수량 | DBD금액 | DDD수량 | DDD금액 | EEE수량 | EEE금액 | FFF수량 | FFF금액 |
1192 | 3 | 70,500 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 150 | 1,450,500 |
1786 | 99 | 96,000 | 3 | 11,100 | 47 | 796,200 | 36 | 0 | 2 | 0 | 15 | 0 | 8 | 0 | 22 | 0 | 1 | 3,700 | 0 | 0 |
단순히 AAA,BBB,CCC 3개의 그룹만 있고 결과를 수량에 대한 것만 필요하다면 단일 pivot으로 출력이 가능한데
그룹의 갯수가 정해져 있지 않고 각 그룹별 수량과 금액을 같이 표시해줘야 하는 부분에서 잘되지 않고 있습니다.
인터넷 검색을 해보니 중복 pivot을 이용하라고 해서 해보려고 하는데 잘안되네요.
아래는 시도해본 쿼리입니다.
SELECT
*
FROM
(
SELECT
업체코드 , 그룹 , 수량 , (수량 * 단가) AS 소계
FROM
판매
) AS SRC
PIVOT
(
SUM(수량) FOR SRC.그룹 IN ( ??? <- 가변 컬럼인데 어떻게 처리해야 하나요.??? )
) AS PVT1
PIVOT
(
SUM(소계) FOR SRC.그룹 IN ( ??? <- 가변 컬럼인데 어떻게 처리해야 하나요.??? )
) AS PVT2
안되는 것은 확실한데 위처럼 진행하는 것이 맞기는 한가요?
고수님들의 도움부탁드립니다.
Comment 1
-
항해자™
2016.04.29 20:36
다이나믹 쿼리로 구현하셔야 합니다,,