데이타 누적 계산 sql문의드립니다. 0 1 1,058

by lgxj [2021.08.12 16:57:09]



누적계산 문의드립니다.

b_qty 가 기초 금액이고요

out_qty 컬럼은 기초금액에서 차감 in_qty는 합산 이며 해당 stok_qty는 계산금액입니다.

그리고 중요한건 누적 계산이 되어야 합니다.

어떤식으로 작업해야 될까요??

 

첨부한 파일에 엑셀은 각행마다 기초값이 있어서 sum() over ( partition by order by) 를 사용하면 될꺼 같은데

문제는 첨부한 파일에 아래에 해당하는 첫번째 행에만 기초값이 있고 나머지는 전 행에 누적값을 가져와서 누적으로 계산을 해야되는부분입니다.

by 마농 [2021.08.12 17:39:36]
-- Case 1 --
WITH t AS
(
SELECT 1 sq, 100 b_qty, 0 out_qty1, 1 out_qty2, 1 out_qty3, 1 out_qty4, 0 in_qty FROM dual
UNION ALL SELECT 2, 100, 1, 1, 0, 0, 3 FROM dual
UNION ALL SELECT 3, 100, 0, 0, 0, 0, 1 FROM dual
UNION ALL SELECT 4, 100, 2, 3, 4, 5, 0 FROM dual
)
SELECT sq
     , b_qty
     , out_qty1
     , out_qty2
     , out_qty3
     , out_qty4
     , in_qty
     , b_qty + SUM(in_qty - out_qty1 - out_qty2 - out_qty3 - out_qty4) OVER(ORDER BY sq) stok_qty
  FROM t
;
-- Case 2 --
WITH t AS
(
SELECT 1 sq, 100 b_qty, 0 out_qty1, 1 out_qty2, 1 out_qty3, 1 out_qty4, 0 in_qty FROM dual
UNION ALL SELECT 2, 0, 1, 1, 0, 0, 3 FROM dual
UNION ALL SELECT 3, 0, 0, 0, 0, 0, 1 FROM dual
UNION ALL SELECT 4, 0, 2, 3, 4, 5, 0 FROM dual
)
SELECT sq
     , b_qty
     , out_qty1
     , out_qty2
     , out_qty3
     , out_qty4
     , in_qty
     , SUM(b_qty + in_qty - out_qty1 - out_qty2 - out_qty3 - out_qty4) OVER(ORDER BY sq) stok_qty
  FROM t
;

 

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