SELECT TO_CHAR(t_date, 'yyyy'), TO_CHAR(t_date, 'MM'), TO_CHAR(t_date+1, 'IW'),
MAX(DECODE(TO_CHAR(t_date,'D'), '1', TO_CHAR(t_date,'dd'))) as 일,
MAX(DECODE(TO_CHAR(t_date,'D'), '2', TO_CHAR(t_date,'dd'))) as 월,
MAX(DECODE(TO_CHAR(t_date,'D'), '3', TO_CHAR(t_date,'dd'))) as 화,
MAX(DECODE(TO_CHAR(t_date,'D'), '4', TO_CHAR(t_date,'dd'))) as 수,
MAX(DECODE(TO_CHAR(t_date,'D'), '5', TO_CHAR(t_date,'dd'))) as 목,
MAX(DECODE(TO_CHAR(t_date,'D'), '6', TO_CHAR(t_date,'dd'))) as 금,
MAX(DECODE(TO_CHAR(t_date,'D'), '7', TO_CHAR(t_date,'dd'))) as 토
FROM ( SELECT to_date('201010'||'01', 'yyyyMMdd') + rownum -1 AS t_date
FROM dba_indexes
WHERE to_date('201010'||'01', 'yyyyMMdd') + rownum - 1 < to_date('201103', 'yyyyMM') )
GROUP BY TO_CHAR(t_date, 'yyyy'), TO_CHAR(t_date, 'MM'), TO_CHAR(t_date+1, 'IW')
ORDER BY TO_CHAR(t_date, 'yyyy'), TO_CHAR(t_date, 'MM'), TO_CHAR(t_date+1, 'IW') ASC;
이런식으로 달력을만드는 쿼리를 짰습니다.
그런데 2011-01-01이 문제가 됐습니다. 주차가 53주차로 들어가 버린거죠...
이거 어떻게 해결해야 할지 막막하네요... 년도가 바뀌는 부분에서 토요일만 아니면
되는데 그게 딱 걸려서 답답하네요..
어떤식으로 해결해야 할지 막막하네요... 도움좀 부탁드리겠습니다.