다연이네

[days07] 달력 그리기 본문

Oracle

[days07] 달력 그리기

 다연  2020. 11. 6. 20:03
반응형
select
    nvl(max(decode(to_char(dates,'D'),1, to_char(dates,'dd'))), ' ') 일
  , nvl(min(decode(to_char(dates,'D'),2, to_char(dates,'dd'))), ' ') 월
  , nvl(max(decode(to_char(dates,'D'),3, to_char(dates,'dd'))), ' ') 화
  , nvl(min(decode(to_char(dates,'D'),4, to_char(dates,'dd'))), ' ') 수
  , nvl(max(decode(to_char(dates,'D'),5, to_char(dates,'dd'))), ' ') 목
  , nvl(min(decode(to_char(dates,'D'),6, to_char(dates,'dd'))), ' ') 금
  , nvl(min(decode(to_char(dates,'D'),7, to_char(dates,'dd'))), ' ') 토
from 
(
   select  to_date( :yyyymm ,'YYYYMM' ) + level -1    dates
   from dual
   connect by level <= extract( day from last_day(to_date(  :yyyymm  , 'YYYYMM')))
) t
group by decode( to_char(dates,'D'), 1, to_char(dates,'IW')+1
                                      , to_char(dates, 'IW'))
            --요일을 가져왔는데 일요일(1)이면 요놈으로 아님 저놈으로 group 묶겠다
            --같은 주로 그룹바이 
            --일요일이 전주로 포함되니까 +1해줘야함
order by decode( to_char(dates,'D'), 1, to_char(dates,'IW')+1
                                      , to_char(dates, 'IW'));

반응형

'Oracle' 카테고리의 다른 글

[days08] DDL - create, alter, drop와 테이블 기초  (0) 2020.11.09
[days08] 서브쿼리  (0) 2020.11.09
[days07] level 의사컬럼  (0) 2020.11.06
[days07] 오라클 data type(자료형)  (0) 2020.11.06
[days07] SQL - RANK, ROLL UP  (0) 2020.11.06
Comments