2012년 7월 19일 목요일

oracle_월별 주차 뽑는 쿼리

/*==================================================================*/
  SELECT TO_CHAR (WEEK_START, 'YYYY-MM-DD') WEEK_START,
         TO_CHAR (WEEK_END, 'YYYY-MM-DD') WEEK_END,
         TO_CHAR (WEEK_START, 'WW') YEAR_WEEK_CNT,
         TO_CHAR (WEEK_START, 'W') MONTH_WEEK_CNT
    FROM (    SELECT TRUNC (START_DT + LEVEL, 'D') WEEK_START,
                     TRUNC (START_DT + LEVEL, 'D') + 7 WEEK_END
                FROM (SELECT TO_DATE ('20100719') - 1 START_DT,
                             TO_DATE ('20110313') END_DT
                        FROM DUAL)
          CONNECT BY LEVEL <= END_DT - START_DT)
GROUP BY WEEK_START, WEEK_END

/*==================================================================*/

WITH T AS
       (SELECT TO_DATE('20101230', 'YYYYMMDD') SDT ,
              TO_DATE('20110302', 'YYYYMMDD') EDT
         FROM DUAL
       )
SELECT TO_CHAR(SDT, 'WW') WW ,
       TO_CHAR(SDT, 'W') W ,
       TO_CHAR(SDT, 'YYYYMMDD') SDT ,
       TO_CHAR(SDT + 6, 'YYYYMMDD') EDT
  FROM
       (SELECT TRUNC(SDT, 'D') + LEVEL*7 - 7 SDT
         FROM T CONNECT BY LEVEL <= (TRUNC(EDT, 'D') - TRUNC(SDT, 'D'))/7 + 1
       ) ;


/* 오라클 클럽에서 펌*/

댓글 없음:

댓글 쓰기