기간을 입력 받아서 기간별 주차를 구해야 하는데요
주차의 기준은 월 ~ 일요일 까지가 1주이고
달의 경계는 목요일을 포함 하는 달로 결정해서
년 월 기간 주차
2015 6 06-01 ~ 06-07 1
2015 6 06-08 ~ 06-14 2
2015 6 06-15 ~ 06-21 3
2015 6 06-22 ~ 06-28 4
2015 7 06-29 ~ 07-05 1 (7월 2일이 목요일 => 7월 1주차)
2015 7 07-06 ~ 07-12 2
2015 7 07-13 ~ 07-19 3
2015 7 07-20 ~ 07-26 4
2015 7 07-27 ~ 08-02 5 (7월 30일이 목요일 => 7월 5주차)
2015 8 08-03 ~ 08-09 1 (8월은 1주차 부터 시작)
이러한 데이터를 보고 싶습니다
고수님들 부탁 드립니다...
WITH TT AS( SELECT TO_DATE('20150601','YYYYMMDD')-1+ROWNUM AS DD FROM DUAL CONNECT BY LEVEL <= 100 ) SELECT TO_CHAR(MIN(WM),'YYYY') "년" , TO_CHAR(MIN(WM),'MM') "월" , TO_CHAR(MIN(DD),'MM-DD') ||' ~ '|| TO_CHAR(MAX(DD),'MM-DD') "기간" , ROW_NUMBER() OVER (PARTITION BY TO_CHAR(MIN(WM),'YYYYMM') ORDER BY MIN(DD)) "주차" FROM ( SELECT DD , DD-TO_CHAR(DD-1,'D') GP , DECODE(TO_CHAR(DD,'D'),5,DD) WM FROM TT ) GROUP BY GP ORDER BY 3 ;