오라클 초보입니다.. 고수님들 도와주세요.. 0 3 2,063

by 능력자 [2008.09.10 19:12:27]


SUM(CASE YYYYMM WHEN '200809' THEN A END) MON1, 
SUM(CASE YYYYMM WHEN '200810' THEN A END) MON2,
SUM(CASE YYYYMM WHEN '200811' THEN A END) MON3,
SUM(CASE YYYYMM WHEN '200812' THEN A END) MON4

WHERE YYYYMM BETWEEN 200809 AND 200812

이런식으로 CASE가 반복될때 받는 파라미터는 WHERE조건의 시작인 200809와 200812일때

CASE 의 WHEN 다음오는 년월이 하나씩 늘어나면서 조건을 줄수 있게 하는 방법좀 알려주세요

부탁드립니다 ㅠㅠ

by 현 [2008.09.11 07:53:31]
입력받은 from 파라메터를 :a라고 한다면
SUM(CASE YYYYMM WHEN to_char(add_months(to_date(:a,'yyyymm'),1),'yyyymm') THEN A END) MON1,
SUM(CASE YYYYMM WHEN to_char(add_months(to_date(:a,'yyyymm'),2),'yyyymm') THEN A END) MON2,
이런식으로 하시면 되겠네요..

그런데 한가지 문제점은 from ~ to의 기간이 일정치 않을 때는 다이나믹으로 하셔야 할 듯...

by 왕희복 [2008.09.11 08:32:22]
증가부분을 rownum으로 하면 될것 같은데요 ^^

by 능력자 [2008.09.18 11:27:20]
쿼리 조건이 또 하나 늘었네요 ㅠㅠ

결국 다 유니온으로 붙여 버렸어요 ㅠㅠ

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