1월에 1
2월에 2
3월에 3
4월에 0
이런자료들이 들어잇습니다.
저내용으로 쿼리를 돌려서
월 월계 누계
1 1 1
2 2 3
3 3 6
4월은 0이니까 출력안함
이런 쿼리를 돌리려고하는데 해결이안되네요
고수님들의 조언 부탁드립니다..
WITH TEST_T(ILJA,AMT) AS (VALUES ('20070101',1), ('20070111',1), ('20070111',1), ('20070121',1), ('20070123',1), ('20070202',2), ('20070202',2), ('20070212',2), ('20070212',2), ('20070222',2), ('20070303',3), ('20070303',3), ('20070313',3), ('20070313',3), ('20070323',3), ('20071201',4), ('20071212',4), ('20071212',4), ('20071231',4), ('20071231',4) )
SELECT SUBSTR(YM,1,4) || MM YM ,SUM(CASE WHEN SUBSTR(YM,5,2) = MM THEN SAMT ELSE 0 END) SUM ,SUM(CASE WHEN SUBSTR(YM,5,2) <= MM THEN SAMT ELSE 0 END) TSUM FROM ( SELECT SUBSTR(ILJA,1,6) YM ,SUM(AMT) SAMT FROM TEST_T WHERE ILJA LIKE '2007%' GROUP BY SUBSTR(ILJA,1,6) ) A ,TABLE( VALUES '01','02','03','04','05','06' ,'07','08','09','10','11','12') DM (MM) GROUP BY SUBSTR(YM,1,4) || MM HAVING SUM(CASE WHEN SUBSTR(YM,5,2) = MM THEN SAMT ELSE 0 END) <> 0
****** TABLE( VALUES '01','02','03','04','05','06' ,'07','08','09','10','11','12') DM (MM) <---- 요넘은 01-12 까지 12 ROW를 생성하는 TEMP 테이블임
A 서버쿼리(월별합계)에 요넘을 조인시키면 결과는 A 서버쿼리 * 12 (각각의 MM) 인 12 GROUP이됨
그결과에 MM 단위별로 해당월까지만 SUM 함.