요일 구하는 쿼리 질문하나하겠숩니다~ 0 4 2,777

by 재민띵 [2013.01.18 11:12:59]



select TO_CHAR(LAST_DAY(TO_DATE(:yymm,'yyyymm')),'mm') as month , rownum as day from dual,
(select null as month, rownum from dual where rownum <= TO_CHAR(LAST_DAY(TO_DATE(:yymm,'yyyymm')),'dd')) test1
CONNECT BY LEVEL <= TO_CHAR(LAST_DAY(TO_DATE(:yymm,'yyyymm')),'dd')

일단 이쿼리를 만들어 원하는년도와 달을 입력하면

데이터를 뽑게되는데 컬럼을 하나더만들어 옆에 요일까지 뽑을수 있을까요?

by 아발란체 [2013.01.18 11:23:48]
--올려주신 질의어를 이용했습니다.
SELECT
  month,
  day,
  (SELECT TO_CHAR(TO_DATE(:yymm||LPAD(day, 2, '0')) - 1, 'D') FROM DUAL) AS day
FROM (
  select
    TO_CHAR(LAST_DAY(TO_DATE(:yymm,'yyyymm')),'mm') as month,
    rownum as day
  from
    dual,
    (select
      null as month, rownum
    from
      dual
    where
      rownum <= TO_CHAR(LAST_DAY(TO_DATE(:yymm,'yyyymm')),'dd')
    ) test1
  CONNECT BY
    LEVEL <= TO_CHAR(LAST_DAY(TO_DATE(:yymm,'yyyymm')),'dd')
)

by 아린 [2013.01.18 11:33:49]
SELECT SUBSTR(:yymm,5,2) month, LEVEL AS day
              , TO_CHAR(TO_DATE(:yymm,'yyyymm')+LEVEL-1,'dy') 요일1 
              , TO_CHAR(TO_DATE(:yymm,'yyyymm')+LEVEL-1,'d')  요일2
   FROM dual
CONNECT BY LEVEL <= TO_CHAR(LAST_DAY(TO_DATE(:yymm, 'yyyymm')), 'dd')  

by 마농 [2013.01.18 11:45:20]

dual 테이블을 그냥 아무데나 막 가져다가 붙이시는군요.
쿼리가 너무 지저분하고 복잡하네요.
아린님처럼 꼭 필요할 때에만 적절하게 사용하세요.


by 재민띵 [2013.01.18 13:54:46]

움... 저두 쿼리를 짧게 작성하고 싶은데 서브쿼리를 써서하라해서요 제가아직 모든게 서툴러서요ㅜㅜ
아린님 로직보고 짧게 짤수 있는 센스를 키워보겟습니다 감사합니다 아발란체님 아린님 마농님 ㅎㅎ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입