안녕하세요
쿼리 질문이 있는데요.
기간 사이의 날짜를 전부 뽑으려고 하는데
WITH T AS (SELECT '2015-03-09' FR_YMD ,'2015-08-15' TO_YMD FROM DUAL
)
SELECT DISTINCT TO_CHAR(TO_DATE(FR_YMD,'YYYY-MM-DD') + LEVEL -1 ,'YYYY-MM-DD') DT
FROM T
CONNECT BY LEVEL <= TO_DATE(TO_YMD,'YYYY-MM-DD')-TO_DATE(FR_YMD,'YYYY-MM-DD') +1
이렇게 한줄로 되어있는 데이터는 뽑을 수 있는데
WITH T AS (SELECT '2015-03-09' FR_YMD ,'2015-08-15' TO_YMD FROM DUAL
union all SELECT '2015-08-16' FR_YMD ,'2015-12-31' TO_YMD FROM DUAL
)
SELECT TO_CHAR(TO_DATE(FR_YMD,'YYYY-MM-DD') + LEVEL -1 ,'YYYY-MM-DD') DT
FROM T
CONNECT BY LEVEL <= TO_DATE(TO_YMD,'YYYY-MM-DD')-TO_DATE(FR_YMD,'YYYY-MM-DD') +1
이렇게 두개나 세개가 있으면 조인되서 수만개가 나오더군요...
DISTINCT를 쓰면 멈추고....
어떻게 해결해야 될까요?
|