예를 들어 2011-03-11 ~ 2011-03-15 까지의 법정 공휴일을 제외한 일수를 구하는 쿼리를 알고 싶습니다.
이 예의 경우는 토요일, 일요일을 제외하고 3일이라는 결과가 나와야 합니다.
토요일, 일요일을 제외한 휴일은 off_day라는 테이블이 별도 존재하는 경우입니다.
고수님들 도와주세요
WITH off_day AS ( SELECT '20110301' dt, '삼일절' cmt FROM dual ) SELECT COUNT(*) cnt FROM (SELECT TO_CHAR(sdt + LEVEL - 1, 'yyyymmdd') dt , TO_CHAR(sdt + LEVEL - 1, 'd') d FROM (SELECT TO_DATE('20110311', 'yyyymmdd') sdt , TO_DATE('20110315', 'yyyymmdd') edt FROM dual) CONNECT BY LEVEL <= edt - sdt + 1 ) a , off_day b WHERE a.dt = b.dt(+) AND a.d NOT IN ('1', '7') AND b.dt IS NULL ;