일자별 D-day를 구하고싶은데요 도움부탁드립니다(현재 만든것까지 첨부하였습니다) 0 1 372

by 닉네임길이제한은몇글 [SQL Query] [2019.11.24 20:31:13]


1.JPG (18,779Bytes)

안녕하세요 우선 답변에 갑사드립니다

쿼리를 작성해보다가 답이 안나와서 질문을 올리게 되었습니다.

 

개요 : 영업일이 몇일 남았나 카운팅 (내일부터~2019년마지막일자 카운팅인데, 마지막영업일인2019/12/31 하루는 빼야해서 20191231일 기준 D-0 입니다)

★안되는것 : 일자별로 어떻게 그룹핑을 하는지 힌트라도 얻을 수 있으면 감사드리겠습니다

                 11월24일 기준   D-?일

                 11월25일 기준   D-?일

                 11월26일 기준   D-?일
         이런식으로 일자별 남은영업일수의  D-day를 각각 구하고싶습니다 ㅠㅠ 달력만들고 오늘기준 D-day까지는 만들어봤는데요.. 일자별로 카운팅이 아무리해도 안되고 있습니다 ㅠㅠ

 

WITH TBL1 AS ( -- (작업시작일 ~ 2019년 마지막일자) 의 5영업일 달력
                SELECT TO_CHAR(CALENDAR_DT, 'YYYYMMDD')                         AS CALENDAR_DT	-- 달력일자
                     , CASE WHEN TO_CHAR(CALENDAR_DT, 'D') IN (1, 7)            THEN '0'
                            WHEN TO_CHAR(CALENDAR_DT, 'YYYYMMDD') = '20191225'  THEN '0'
                            ELSE '1'
                        END                                                     AS BIZI_5_YN	-- 5영업일여부
                  FROM ( SELECT SYSDATE + (LEVEL - 1)                           AS CALENDAR_DT
                           FROM DUAL
                        CONNECT BY LEVEL <= (TO_DATE('20200101') - SYSDATE + 1)
                       )
            )

-- 아래는 출력을 원하는 데이터포맷 예시입니다... 
SELECT 'D-' || SUM(DECODE(BIZI_5_YN, '1', 1, 0))          AS DYS     -- 남은영업일수(내일부터~2019년마지막일자 카운팅, 마지막영업일인 20191231 빼고)
     , TO_CHAR(SYSDATE, 'YYYY/MM/DD (DY)')  || ' 기준 '    AS BASE_DT
    -- , CALENDAR_DT   -- 일자별로 각각 남은 D-day를 구하고싶은데, 그루핑조건을 제대로 주지 못하는것 같습니다 ㅠㅠ 
  FROM TBL1
 WHERE CALENDAR_DT  > TO_CHAR(SYSDATE, 'YYYYMMDD')                     -- 오늘 빼고
   AND CALENDAR_DT  < '20191231';

 

 

 

 

감사합니다 !!

by 마농 [2019.11.25 09:07:09]
SELECT calendar_dt
     , bizi_5_yn
     , SUM(bizi_5_yn) OVER(ORDER BY calendar_dt ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) d_day
  FROM tbl1
 WHERE calendar_dt > TO_CHAR(sysdate, 'yyyymmdd')
   AND calendar_dt < '20191231'
;

 

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