WITH t1 AS ( SELECT 60 cnt_in, 55 cnt_out, 5 cnt_rem FROM dual ) , t2 AS ( SELECT 1 seq, '입고' gb, 1 cnt FROM dual UNION ALL SELECT 2, '출고', 2 FROM dual UNION ALL SELECT 3, '출고', 3 FROM dual UNION ALL SELECT 4, '출고', 1 FROM dual UNION ALL SELECT 5, '입고', 10 FROM dual UNION ALL SELECT 6, '출고', 2 FROM dual ) SELECT seq , gb , cnt_in , cnt_out , SUM(cnt_in - cnt_out) OVER(ORDER BY seq) cnt_rem FROM (SELECT 0 seq , '기본' gb , cnt_in , cnt_out FROM t1 UNION ALL SELECT seq , gb , DECODE(gb, '입고', cnt, 0) cnt_in , DECODE(gb, '출고', cnt, 0) cnt_out FROM t2 ) ;