누적 차감 금액을 구하고 싶은데요... 1 4 3,981

by 레브레카 [SQL Query] [2014.03.26 16:40:26]


SEQ  금액
----------------
3      10,000
2      30,000
1      50,000

이 있다고 가정하고,
20,000 원을 요청하면


SEQ  금액   차감금액
--------------------------------
3      10,000  10,000
2      30,000  10,000

으로 보여주고 또는

SEQ  금액
----------------
3      0
2      20,000

차감된 금액을 조회할려고 하는데요....SUM() OVER() 를 써야 할거 같은데 잘모르겠네요...
by 마농 [2014.03.26 17:46:35]
WITH t AS
(
SELECT 3 seq, 10000 금액 FROM dual
UNION ALL SELECT 2, 30000 FROM dual
UNION ALL SELECT 1, 50000 FROM dual
)
SELECT seq
     , 금액
     , LEAST(금액, 요청액, 요청액 - 누적금액 + 금액) 차감액
     , 금액 - LEAST(금액, 요청액, 요청액 - 누적금액 + 금액) 잔액
  FROM (SELECT seq
             , 금액
             , SUM(금액) OVER(ORDER BY seq DESC) 누적금액
             , 20000 요청액
          FROM t
        )
 WHERE 누적금액 - 금액 < 요청액
;

by 임상준 [2014.03.26 18:19:39]
누적금액 - 금액 이 lag 의 효과가 있군요,,,
서브쿼리 한번으로 끝나네..감사합니다

by 손님 [2014.03.26 19:30:11]
정말 감사합니다

by 손님 [2014.03.26 19:38:22]
감사합니다!! 예제까지 ㅠㅠ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입