숫자를 더 하고 빼기 0 3 1,098

by 초코초코 [2015.01.13 17:07:21]


  A B  
5 5  
20 15  
5 0  
30 20  
       
가 항목은  필수    
(가+나+다) 를 더 하여 20미만으로 만들고 , 가+나 = 20이 넘으면 다는 0으로 20이 안넘으면 다 항목을 더하여 20 으로 ,  B 라인처럼  합을 내고 싶습니다
       

 쿼리를 어떻게 해야 할지 ,, 도움 부탁 드립니다.   고맙습니다.

by lovekod2hj [2015.01.13 17:51:15]
WITH TMP AS (
    SELECT 1 AS RNUM, 5 AS A  FROM DUAL UNION ALL
    SELECT 2 , 10  FROM DUAL UNION ALL
    SELECT 3 , 15   FROM DUAL UNION ALL
    SELECT 4 , 20   FROM DUAL
   )
SELECT RNUM, A
     , CASE WHEN CURRENT_A_SUM <= 20 THEN A 
            WHEN CURRENT_A_SUM - A >= 20 THEN 0
            ELSE A - (CURRENT_A_SUM - 20) END B
  FROM (
        SELECT RNUM
             , A
             , SUM(A) OVER (ORDER BY RNUM) AS CURRENT_A_SUM
          FROM TMP  
       )

 


by jkson [2015.01.13 18:31:52]

love님이 답변 잘해주셨군요^^


by 초코초코 [2015.01.15 11:38:48]

고맙습니다. 도움 주셔서 감사해요

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