data를 행열 변환시켜서 쿼리하고 싶습니다. 0 1 6,336

by DDRCHO [SQL Query] 행렬 행열 변환 가로 [2011.11.07 11:23:05]


안녕하십니까

질문을 말로 설명하기에 제 표현력이 부족해서 예로 들어 여쭙겠습니다.

(통상적인 질의 결과)
     Key     Value
      A          1
      A          2
      A          3
      B          2
      B          3
      B          4

(제가 원하는 결과)
     A1(컬럼이름은 상관없음)  A2   A3    B1   B2   B3
              1                            2      3      2     3      4

위와 같이 Data를 가져오고 싶은데,
Key의 경우 위처럼 2개만 나오는게 아니라 여러개가 나올 수도 있고, 
매번 같은걸 조회하는게 아닙니다.
그리고 Key당 값의 개수는 3개가 고정입니다.

현재 제가 운영하고 있는 시스템에서 첫번째 처럼 데이터를 제공을 하고있는데
사용자가 두번째 처럼 데이터를 달라고 요청을 해서요... 제가 제공한 데이터를
엑셀로 가져가서 매번 행렬 변환을 통하여 작업을 하고 있는데 많이 힘들다고
간곡하게 부탁을 하네요...

이 난국을 어찌 해결해야 할까요.. ㅠ.ㅠ 
도움을 부탁드립니다.

쿼리 자체로 해결이 된다면 좋겠지만 프로시저를 통하여 값을 가져올 것이기 때문에
동적 쿼리를 이용한 방법론만 설명해주셔도 많은 도움이 될 것 같습니다.

읽어주셔서 감사합니다.
수고하십시오.
by 이재현 [2011.11.07 12:22:53]
순수 SQL로는 불가능하구요..

프로시져로 다이나믹 SQL문을 만들어서 실행하시던지..

아님 SQL로 만드시는데 컬럼값을 바인드 변수로 만들어서 안에다가 변수를 넣어서

사용하셔야해요.. 어려운가 ;;

ex ) 아이바티스

SELECT $COLUMNS$
FROM TAB
GROUP BY KEY

프로그램단에서 아래문을 만들어서...

$COLUMNS$ => "$COLUMN1$, $COLUMN2$, $COLUMN3$, ...."

아이바티스 사용해본지가 오래되어시리 오타가 있을수있군요..

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