SQL挑战赛第一期
根据给定数据,按序号seqno累计,上月累计金额=amount+上月累计金额,但是如果上月累计金额是正值,就不计入下个月,重新累计。
/*原始数据*/
drop table test_tab purge;
create table test_tab as
(
select 1 as seqno,50 as amount from dual
union all
select 2 as seqno,-100 as amount from dual
union all
select 3 as seqno,20 as amount from dual
union all
select 4 as seqno,50 as amount from dual
union all
select 5 as seqno,-20 as amount from dual
union all
select 6 as seqno,-30 as amount from dual
union all
select 7 as seqno,40 as amount from dual
union all
select 8 as seqno,100 as amount from dual
union all
select 9 as seqno,20 as amount from dual
union all
select 10 as seqno,-70 as amount from dual
union all
select 11 as seqno,40 as amount from dual
);
要求
按序号seqno累计
上月累计金额=amount+上月累计金额
但是如果上月累计金额是正值,就不计入下个月,重新累计,结果如下:
SEQNO AMOUNT TOT_AMOUNT 1 50 50 2 -100 -100 3 20 -80 4 50 -30 5 -20 -50 6 -30 -80 7 40 -40 8 100 60 9 20 20 10 -70 -70 11 40 -30