Oracle

Oracle DB에서 SQL 쿼리로 달력 만들기

긋대디 2020. 9. 25. 23:33

오라클 데이터베이스에서 쿼리를 이용하여 특정월의 요일별 달력을 만들어야 하는 경우 아래 SQL Query를 이용하여 달력을 만들수 있다.

파마리커 값으로 '202002' 처럼 년월을 입력하면 2월달 달력을 만들 수 있다.

SELECT SUM(DECODE(A.A2, '1', A.A3, null)) 일요일, SUM(DECODE(A.A2, '2', A.A3, null)) 월요일, SUM(DECODE(A.A2, '3', A.A3, null)) 화요일, SUM(DECODE(A.A2, '4', A.A3, null)) 수요일, SUM(DECODE(A.A2, '5', A.A3, null)) 목요일, SUM(DECODE(A.A2, '6', A.A3, null)) 금요일, SUM(DECODE(A.A2, '7', A.A3, null)) 토요일 FROM ( SELECT rownum + 7 - to_number(TO_CHAR(TO_DATE('202002' || TO_CHAR(rownum),'YYYYMMDD'),'D')) as A1, TO_CHAR(TO_DATE('202002' || TO_CHAR(rownum), 'YYYYMMDD'), 'D') as A2, rownum as A3 FROM user_objects WHERE rownum <= 31 AND rownum > 0 And TO_CHAR(LAST_DAY(TO_DATE('202002' || '01', 'YYYYMMDD')), 'DD')>= LTRIM(TO_CHAR(rownum, '00')) ) A GROUP BY A.A1

실행 결과 화면