기간을 입력한 다음 그 기간에 속하는 날짜를 출력하는 쿼리 0 3 2,984

by 지승용 [2007.03.18 22:11:34]


 

제목과 같은 쿼리를 만들고 싶은데...좋은 방법은 없을까요?

 

select b.col1 ,a.date1
 from (
           select to_date('20070101','yyyymmdd') + rownum -1 date1
              from all_tables
         ) a,  table2 b
where a.date1  between b.from_date
                   and  b.end_date
   and a.date1  BETWEEN to_date('20070101','yyyymmdd')
          and to_date('20070330','yyyymmdd')

 

결과는 두개의 조건문 모두 포함하는 날짜만 리스트를 출력해야 합니다.

 

제가 이렇게 만들어보았는데...

 

더 좋은 방법 없을까요?

 

이렇게 하니까...속도가 너무 느려서..ㅡ,.ㅡ

 

우문현답 기다리겠습니다...^^

 

감사합니다.

 

by 마농 [2007.03.19 00:00:00]
-- 기간조건은 인라인뷰 안쪽으로 넣으세요
SELECT TO_DATE('20070101','yyyymmdd') + ROWNUM -1 date1
FROM all_tables
WHERE ROWNUM <= TO_DATE('20070330','yyyymmdd') - TO_DATE('20070101','yyyymmdd') + 1

by finecomp [2007.03.19 00:00:00]
쿼리가 좀 이상해요...;
주개의 조건문 모두라고 하였으니 아우터조인으로 만든 일자를 전부 보여주는 것도 아니고,
만든일자와 범위로 조인하여 일부러 카테시안 곱을 만드는 것도 아니라면,
table2에 상수조건을 직접주면 되는 쿼리아닌지...?;

WHERE from_date <= TO_DATE('20070330')
AND end_date >= TO_DATE('20070101')...?

확실치가 않네요...제가 이해를 못하고 있는지도...;;

건승하시길...수고하세요~~

by 지승용 [2007.03.26 00:00:00]
답변 감사드립니다..^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입