大力的先入先出的库存物品,按批次出货的问题的一个解法。

create table G (goods varchar(2),lot varchar(3),bal int)
create table O (oid varchar,goods varchar(2),qty int)
insert G select 'aa','p01',5
union select 'aa','p02',10
union select 'bb','p01',20

insert O select '1','aa',11
union select '1','bb',10
union select '2','aa',2
union select '3','aa',1

select oid,b.goods,lot,deli=(case when sq>sb then sb else sq end)-(case when sq-qty

1<sb-bal (="" )="" *,sb="(" *,sq="(" <="a.oid" a="" and="" b="" b.goods="c.goods" c="" else="" end)="" from="" g="" goods="a.goods" join="" lot<="a.lot" o="" oid="" on="" sb-bal="" select="" sq="" sq-qty="" sq-qty<sb="" sum(bal)="" sum(qty)="" then="" where="">sb-bal   
2order by oid,b.goods,lot 
3
4drop table g,o</sb-bal>
Published At
Categories with 数据库类
comments powered by Disqus