오라클 connect by 질문입니다. 1 5 1,557

by 어쩌다보니 CONNECT BY 질문입니다. [2014.09.04 17:05:25]


12.jpg (78,999Bytes)


SELECT DAYS, DATE_D, WEEK_GRP, WEEK_GRP + (DAYS -1) AS ALL_DATE
        FROM ( SELECT TO_CHAR (TRUNC (BASE_MON, 'd') + LEVEL - 1, 'd') DAYS, TO_CHAR 
        (TRUNC (BASE_MON, 'd') + LEVEL - 1, 'fmdd') DATE_D
        , TRUNC (TRUNC (BASE_MON, 'd') + LEVEL - 1, 'd')
         WEEK_GRP FROM (SELECT TO_DATE ('201409', 'YYYYMM') BASE_MON FROM DUAL) 
         
         CONNECT BY TRUNC (BASE_MON, 'd') + LEVEL - 1 < = 
         TRUNC (LAST_DAY (BASE_MON), 'd') + 7 )

안녕하세요. 

개발하다가 잘 안되는게 있어서 질문 올립니다.

위 쿼리를 실행하게 되면 아래 그림처럼 나오게 됩니다.

이 쿼리에서 WEEK_GRP 이 컬럼에 나오는 날짜가 현재 일요일만 찍히고 있는데요

이걸 토요일과 일요일 둘다 나오게 하고 싶은데 

잘 안되네요

 

by 마농 [2014.09.04 17:14:08]

토요일과 일요일 둘다 나오게 하고 싶은데 ???

==> 둘다 어떻게 나오길 바라는지를 보여주셔야죠...


by 아발란체 [2014.09.04 17:33:27]
WITH T AS (
  SELECT TO_DATE('201409', 'YYYYMM') AS base_mon FROM DUAL
)
SELECT 
    TO_CHAR(all_date, 'd') AS days,
    TO_CHAR(all_date, 'DD') AS date_d,
    DECODE(TO_CHAR(all_date, 'd'), 7, all_date, TRUNC(all_date, 'd')) AS week_grp,
    all_date
FROM (
  SELECT
    TRUNC(base_mon, 'd') + LEVEL - 1 AS all_date
  FROM
    T
  CONNECT BY
    TRUNC(BASE_MON, 'd') + LEVEL - 1 < = TRUNC(LAST_DAY (BASE_MON), 'd') + 7
)

by 어쩌다보니 [2014.09.04 17:34:54]

아  그렇군요   DAYS컬럼이 1일때 일요일 날짜가 찍히는거구요 

7일때는 토요일 날짜가 찍히게 하고 싶습니다. 


by 마농 [2014.09.04 17:44:02]

원하시는 결과표를 만들어서 보여주시는 편이 나을 듯 하네요.


by 어쩌다보니 [2014.09.04 17:42:53]

두분다 감사합니다!

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