매년, 매분기, 매월 첫째주 월요일을 구하는 쿼리좀 알려주세요..ㅠㅠ 1 5 3,937

by Kay Kwon [2013.11.26 17:23:48]



고수님들

매년, 매분기, 매월 첫째주 월요일을 구하는 쿼리를 짜야하는데

아직 감이 안오네요..

기준일은 2013.1.1 이고 그날은 화요일 입니다.

좀 알려주세요..ㅠㅠ
by 마농 [2013.11.26 17:39:00]

기준일에 따른 결과표도 보여주세요.


by 사랑초 [2013.11.26 17:50:22]
음 그냥 월요일만 쭈욱 뽑는걸로 만들어 봤습니다만....
혹시 도움이 되실련지..;;

select *
from
(
  SELECT TRUNC(SYSDATE,'y')-1+ROWNUM as day, TO_CHAR(TRUNC(SYSDATE,'y')-1+ROWNUM+1,'iw') as week
  FROM user_objects
  WHERE ROWNUM <= ADD_MONTHS(TRUNC(SYSDATE,'y'),12) - TRUNC(SYSDATE,'y')
)
where to_char(day, 'd') = 2

by 우리집아찌 [2013.11.26 17:54:57]
 
-- 월만..
SELECT NEXT_DAY( TO_DATE ( '2013'||MM, 'YYYYMM'), 2 ) MONTH_MONDAY 
FROM DUAL , (SELECT LPAD(LEVEL,2,'0') MM FROM DUAL CONNECT BY LEVEL <= 12 )

by 마농 [2013.11.26 18:22:59]
WITH t AS
(
SELECT ADD_MONTHS(TO_DATE('201301', 'yyyymm'), LEVEL-1) dt
  FROM dual
 CONNECT BY LEVEL <= 12
)
SELECT TO_CHAR(dt, 'yyyymm') yyyymm
     , NEXT_DAY(TRUNC(dt, 'yy')-1, 2) y_1st_mon
     , NEXT_DAY(TRUNC(dt, 'q' )-1, 2) q_1st_mon
     , NEXT_DAY(TRUNC(dt, 'mm')-1, 2) m_1st_mon
  FROM t
;

YYYYMM Y_1ST_MO Q_1ST_MO M_1ST_MO
------ -------- -------- --------
201301 13/01/07 13/01/07 13/01/07
201302 13/01/07 13/01/07 13/02/04
201303 13/01/07 13/01/07 13/03/04
201304 13/01/07 13/04/01 13/04/01
201305 13/01/07 13/04/01 13/05/06
201306 13/01/07 13/04/01 13/06/03
201307 13/01/07 13/07/01 13/07/01
201308 13/01/07 13/07/01 13/08/05
201309 13/01/07 13/07/01 13/09/02
201310 13/01/07 13/10/07 13/10/07
201311 13/01/07 13/10/07 13/11/04
201312 13/01/07 13/10/07 13/12/02

by Kay Kwon [2013.11.26 19:05:06]

결과표 올리려는데

벌써 쿼리가 올라와 있네요..^^

감사합니다.

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