PIVOT 질문입니다. 1 1 1,557

by 한결 [2014.04.25 14:09:39]


WITH T AS (
    SELECT *
     FROM (
       SELECT CDATE
            , A.ID
            , CNT
         FROM TABLE1 A, TABLE2
        WHERE A.ID = B.ID
    )
    PIVOT XML (
          SUM(CNT) CNT
          FOR ID IN (SELECT ID FROM TABLE2)
    )
)
SELECT CDATE,
       EXTRACTVALUE(ID_XML, '/PivotSet/item[1]/column[2]/text()') COL1,
       EXTRACTVALUE(ID_XML, '/PivotSet/item[2]/column[2]/text()') COL2,
       EXTRACTVALUE(ID_XML, '/PivotSet/item[3]/column[2]/text()') COL3
  FROM T 
ORDER BY CDATE

 

위 쿼리문에서 COL1, COL2가 고정적이지 않습니다.

TABLE2의 ID갯수만큼 COL이 늘어나게 해야되는데 방법이 있는지요,,

by 아발란체 [2014.04.25 14:28:22]

PIVOT 함수를 써도 X, Y 항목을 명시적으로 지정을 해야 하기 때문에
동적을 항목을 설정하는 것은 Dynimic SQL를 써야 하지 않을까 하네용 ~ :)

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입