기간별 주차 구하기 질문좀 드릴께요 0 2 1,744

by 털뽑는수녀 기간 주차 [2015.06.26 10:42:40]


기간을 입력 받아서 기간별 주차를 구해야 하는데요

주차의 기준은 월 ~ 일요일 까지가 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주차 부터 시작)

이러한 데이터를 보고 싶습니다

고수님들 부탁 드립니다...

by 창조의날개 [2015.06.26 13:55:14]

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
;

 


by 털뽑는수녀 [2015.06.26 14:40:32]

창조의 날개님 정말 감사합니다

막혔던 부분이 한번에 해결됬네요

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입