2010년 1월 7일 목요일

크로스텝쿼리

업무 중에 가끔 현업에서 담당자들의 요구 사항을 접수 하다 보면
엑셀을 주 업무로 이용 하다 보니
엑셀 형태의 가로 세로 형식을 많이 요구 한다...

 품목2009년
2010년
 ...........
 A 1003000
 ...........
 B 2002000 ...........
...........  ...........  ...........  ...........

이와 같은 형태로 말이다...ㅡㅡ;;

단순하게 생각하면 이런 형태는 데이터베이스 에서 DATA를 뽑아 올때 애매하다...

저장프로시저나 임시테이블 등을 사용을 기본적으로 생각했었다...

헌데 찾아보다 보니....

간단한 CASE 문으로 도 가능 한 것이었다..ㅡㅡ;;
이런 바보......

간단하게 크로스텝 쿼리에 대해 작성해 보자...
[code sql]
 select codeName,
           sum(case when year(inDate)=2009 then inSum else 0 end) as '2009년',
           sum(case when year(inDate)=2010 then inSum else 0 end) as '2010년'
from intable
[/code]
위와 같은 case 구문으로 크로스텝 쿼리 구현이 가능하다....

잘 생각하면 프로그래밍 중에 동적 쿼리를 통해 년도 범위를 사용자가 직접 지정해서
결과를 도출하게 프로그래밍 할 수 있다...


댓글 없음:

댓글 쓰기