表1 表1ID 单号 产品 数量 到货量 1 001 A 10 2 001 B 10 2 002 A 30
表2 表2ID 产品 到货量 1 A 30
表3 表3ID 单号 表2ID 产品 1 001 1 A 2 002 1 A 表关系就是这样的,我现在要更新表1的到货量, 产品A总共进货是30个,按照单据先进先更新的原则应该是先更新001号单A的到货数10个,再更新002号单A的到货数20个,求高手解答
不负相思意
浏览 487回答 2
2回答
慕雪6442864
create or replace procedure usp_goods_calculateas remainNum number:=0; nowproduct varchar2(50):=' '; needNum number:=0;begin for rec in (select c.columnno,c.num xnum,b.product,b.num dnum from table3 a inner join table2 b on a.product=b.product inner join table1 c on a.columnno=c.columnno and a.product=c.product order by c.product,c.columnno) loop if nowproduct!=rec.product then nowproduct:=rec.product; if rec.xnum<rec.dnum then remainNum:=rec.dnum -rec.xnum; needNum:=rec.xnum; else remainNum:=0; needNum:=rec.dnum; end if; update table1 set rnum=needNum where columnno=rec.columnno and product=rec.product; elsif remainNum!=0 then if rec.xnum<remainNum then remainNum:=remainNum -rec.xnum; needNum:=rec.xnum; else needNum:=remainNum; remainNum:=0; end if; update table1 set rnum=needNum where columnno=rec.columnno and product=rec.product; end if; end loop;end;
其中 单号:columnno 表1需要的数据:xnum product:产品 dnum:到货量 rnum:获取数量
是不是这样