오라클 데이터베이스 질문드립니다. 0 1 2,037

by ymym [SQL Query] ORACLE [2018.12.28 16:55:19]


111.PNG (9,212Bytes)

다시 질문드립니다..!!

맨 밑에 사진은 거래처별로 기준 월을 잡고 얼마만에 다 미수금을 내는지 보는 쿼리입니다

현재잔액 값을 기준으로 당월매출, 1월매출,2월매출,3월매출 컬럼 값을 불러올 때,

매출들 합이 현재 잔액과 동일할 때까지만 값들을 출력하고 싶습니다.  예를들어

현재잔액 당월매출 1개월 2개월 3개월  

    60          30      10     10     11           

 

3개월 매출까지 그냥 가져왔을때 이렇게 출력될 때  현재 잔액만큼만 가져오고 싶으면 어떻게 해야하나요?(밑에 결과처럼 출력  하고 싶으면 어떻게 해야하나요?)

현재잔액 당월매출 1개월 2개월 3개월  

    60          30      10     10     10

by 마농 [2019.01.02 16:31:15]
WITH t AS
(
SELECT 1 id, 60 r, 30 m0, 10 m1, 10 m2, 11 m3, 7 m4 FROM dual
)
SELECT id
     , r
     , GREATEST(0, LEAST(m0, r                    )) m0
     , GREATEST(0, LEAST(m1, r - m0               )) m1
     , GREATEST(0, LEAST(m2, r - m0 - m1          )) m2
     , GREATEST(0, LEAST(m3, r - m0 - m1 - m2     )) m3
     , GREATEST(0, LEAST(m4, r - m0 - m1 - m2 - m3)) m4
  FROM t
;

 

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