달력쿼리 질문입니다!. 1 4 2,451

by 재민띵 [2013.01.21 13:31:53]



select 주차,
   MIN(case when 요일1 = '일' then day end) as sunday,
   MIN(case when 요일1 = '월' then day end) as monday,
   MIN(case when 요일1 = '화' then day end) as tuesday,
   MIN(case when 요일1 = '수' then day end) as wednsday,
   MIN(case when 요일1 = '목' then day end) as thursday,
   MIN(case when 요일1 = '금' then day end) as friday,
   MIN(case when 요일1 = '토' then day end) as saturday
from (SELECT SUBSTR(:yymm,5,2) month, LEVEL  day
    , TO_CHAR(TO_DATE(:yymm||level,'yyyymmdd')  ,'dy') 요일1
    , TO_CHAR(TO_DATE(:yymm||level,'yyyymmdd')  ,'d' ) 요일2
    , TO_CHAR(TO_DATE(:yymm||level,'yyyymmdd')+1,'iw') 주차
   FROM dual
CONNECT BY LEVEL <= TO_CHAR(LAST_DAY(TO_DATE(:yymm, 'yyyymm')), 'dd'))
group by 주차
order by 주차
이렇게 작성을하면 다른 월들은 정상출력이 되는데 12월 데이터만 약간 문제가 발생합니다
원인은 아마 주차별 정렬시 내년 주차와 겹쳐서 그런것 같은데 해결방법좀 알려주시면 감사하겠습니다 ㅎㅎ
by 마농 [2013.01.21 15:24:36]
ORDER BY sunday

by 손님 [2013.01.21 15:28:21]

order by min(day),주차

by 잼띵 [2013.01.21 15:35:51]

마농님 손님님 감사합니다 ㅎㅎ order by 에서 조건줄때 함수사용이되는군요 ㅎㅎ

by 마농 [2013.01.21 15:39:43]

맨 위에 첫주 일요일이 널일수도 있다는걸 간과했네요.
ORDER BY sunday NULLS FIRST

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