데이타
날짜 이름 입금액
1일 A 1
2일 A 3
2일 B 2
3일 A 5
.
.
.
출력
A누적 A입금 B누적 B입금
1일
안녕하세요. 아래같이 해봤습니다.
with t (dt, nm, dep) as (
select '1일', 'A', 1 from dual union all
select '2일', 'A', 3 from dual union all
select '2일', 'B', 2 from dual union all
select '3일', 'A', 5 from dual
)
select dt,
sum(a_dep) over( order by dt) a_dep_acc,
a_dep,
sum(b_dep) over( order by dt) b_dep_acc,
b_dep
from (select dt,
sum(case when nm='A' then dep else 0 end) a_dep,
sum(case when nm='B' then dep else 0 end) b_dep
from t
group by dt) t1
SELECT dt
, SUM(SUM(DECODE(nm, 'A', dep))) OVER(ORDER BY dt) a_dep_acc
, SUM(DECODE(nm, 'A', dep)) a_dep
, SUM(SUM(DECODE(nm, 'B', dep))) OVER(ORDER BY dt) b_dep_acc
, SUM(DECODE(nm, 'B', dep)) b_dep
FROM t
GROUP BY dt
ORDER BY dt
;
역시 한번에 하는게 깔끔하군요~ 참고하겠습니다.