SELECT 'A' GK, '20100301' sdt, '20100701' edt, 10 cnt FROM dual UNION ALL
SELECT 'A' GK, '20100401' sdt, '20100501' edt, 20 FROM dual UNION ALL
SELECT 'A' GK, '20100501' sdt, '20100701' edt, 30 FROM dual UNION ALL
SELECT 'B' GK, '20100601' sdt, '20100901' edt, 40 FROM dual UNION ALL
SELECT 'B' GK, '20101001' sdt, '20101101' edt, 50 FROM dual UNION ALL
SELECT 'B' GK, '20100311' sdt, '20100601' edt, 60 FROM dual UNION ALL
SELECT 'B' GK, '20100401' sdt, '20100701' edt, 20 FROM dual
)
이를 중첩된 구간을 분할하여 중첩되는 구간의 cnt의 합을 구하려고 합니다.
(첨부 참조)
고민 끝에 구간을 분할하는것은 가능할것 같은데
중첩된 구간의 sum을 도저히 못구하겠네요...
몇일째 고민중입니다. 도움을 좀 주세요..^^
결과는 아래와 같습니다.(그림의 결과는 잘못된 결과입니다.)
A 10 20100301 20100401
A 30 20100401 20100501
A 40 20100501 20100701
B 60 20100311 20100401
B 80 20100401 20100601
B 60 20100601 20100701
B 40 20100701 20100901
B 50 20101001 20101101