一个关于先进先更新的sql问题

表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:获取数量     是不是这样

红颜莎娜

不太明白你的意思
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server