日期:2014-05-16 浏览次数:20564 次
create table 订货表
(货号 varchar(10),客人 varchar(10),订货数 int)
insert into 订货表
select 'A001','C001',100 union all
select 'A001','C002',50 union all
select 'A001','C003',200
create table 入库表
(货号 varchar(10),入库 int)
insert into 入库表
select 'A001',180 union all
select 'A002',300
select 货号,客人,订货数,identity(int,1,1) 'rn'
into #dh
from 订货表
select 货号,客人,订货数,
(select sum(b.订货数)
from #dh b
where b.货号=a.货号 and b.rn<=a.rn) 'qty'
into #dh2
from #dh a
select a.货号,a.客人,a.订货数,
case when b.入库>=a.qty then a.订货数
when b.入库>(a.qty-a.订货数) then b.入库-(a.qty-a.订货数)
else 0 end '分配库存数'
from #dh2 a
inner join 入库表 b on a.货号=b.货号
/*
货号 客人 订货数 分配库存数
---------- ---------- ----------- -----------
A001 C001 100 100
A001 C002 50 50
A001 C003 200 30
(3 row(s) affected)
*/