1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | -- 'D' 일주일(일요일~토요일)을 숫자로 표시 -- 'IW' 년 주차 표시(월요일~일요일, 1월1일이 월요일~목요일 사이이면 1주차, 아니면 전년도 마지막 주차) -- 'WW' 년 주차 표시(1주차 : 1월1일 ~1월7일) -- 'W' 월 주차 표시(1주차 : 매월1일 ~매월7일) -- 작성하신 쿼리를 보시면 -- 구룹바이 기준은 'IW'로 하면서, 요일 기준은 'D' 를 사용하셨네요. -- 둘다 'D'를 사용하도록 하세요. SELECT MIN (DECODE(d, '1' , dd)) sun , MIN (DECODE(d, '2' , dd)) mon , MIN (DECODE(d, '3' , dd)) tue , MIN (DECODE(d, '4' , dd)) wed , MIN (DECODE(d, '5' , dd)) thu , MIN (DECODE(d, '6' , dd)) fri , MIN (DECODE(d, '7' , dd)) sat FROM ( SELECT dt + LEVEL - 1 dt , TO_CHAR(dt + LEVEL - 1, 'dd' ) dd , TO_CHAR(dt + LEVEL - 1, 'd' ) d , TRUNC (dt + LEVEL - 1, 'd' ) w FROM ( SELECT TO_DATE(&as_day, 'yyyymm' ) dt FROM dual) CONNECT BY LEVEL <= LAST_DAY(dt) - dt + 1 ) GROUP BY w ORDER BY w ; |