oracle中类似这样:
select
t1.code as 物品编码,
t1.rknumber as 入库数量,
t2.cknumber as 出库数量,
t1.rknumber-sum(cknumber) over(partition by t1.code order by t1.code,t2.id) as 递减库存
from
(select 'A' as code,10 as rknumber from dual
union all
select 'B' as code,8 as rknumber from dual) t1,
(
select 'A' as code,1 as cknumber, 1 as id from dual
union all
select 'A' as code,2 as cknumber , 2 as id from dual
union all
select 'A' as code,8 as cknumber , 3 as id from dual
union all
select 'B' as code,1 as cknumber , 4 as id from dual
union all
select 'B' as code,1 as cknumber , 5 as id from dual) t2
where t1.code=t2.code
![1642483771511596.png image.png](/upload/wenda/20220118/1642483771511596.png)