프로그래밍/오라클

누적금액 구하기

이지모 2013. 12. 9. 18:55
      SELECT EMPL_NUMB, OVTM_DATE
      , CASE WHEN OVER_TIME1 IS NOT NULL THEN OVER_TIME1 + OVER_TIME2
                 ELSE TO_NUMBER(SF_GET_DAYTOTIME(OVER_TIME,'24')) END AS OVER_TIME
      , OVER_TIME1
      , OVER_TIME2
      , SUM(CASE WHEN OVER_TIME1 IS NOT NULL THEN OVER_TIME1 + OVER_TIME2
                 ELSE TO_NUMBER(SF_GET_DAYTOTIME(OVER_TIME,'24')) END) OVER (ORDER BY OVTM_DATE ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS TOTL_TIME -- 누적금액
      FROM (
            SELECT B.* FROM (
                  SELECT '000000' AS EMPL_NUMB, TO_CHAR(TO_DATE('20131107','YYYYMMDD') + LEVEL - 1, 'YYYYMMDD') AS OVTM_DATE
                  FROM DUAL
                  CONNECT BY LEVEL < 8
                  ) A INNER JOIN TH_OVERTIME B on B.EMPL_NUMB = A.EMPL_NUMB AND B.OVTM_DATE = A.OVTM_DATE
                  LEFT OUTER JOIN TH_HOLDAY C
                  on C.HOLI_DATE = A.OVTM_DATE
                  WHERE C.HOLI_DATE IS NULL -- 평일
                  OR C.HOLI_DATE = 'HR420002' -- 토요일
                  OR B.WORK_STIME IS NOT NULL
            )
      )


'프로그래밍 > 오라클' 카테고리의 다른 글

TO_CHAR 함수  (0) 2017.04.20
테이블스페이스 잔여 용량 확인하기  (0) 2013.09.30
제약조건 조회하기  (0) 2010.12.26