销售表与入库表数据的冲销处理

if exists(select 1 from sysobjects where id=object_id('input') and xtype='U') drop table input
go
create table Input
(
名称 varchar(2),
代号 varchar(3),
工号 varchar(2),
批次 varchar(3),
入库数量 int,
库存数据 int,
入库时间 varchar(10)
)
insert into input
select 'a1','ab','ac','p06',30,30,'2006-05-12' union all
select 'a1','ab','ac','p06',50,50,'2006-05-13' union all
select 'a1','ab','ac','p06',50,50,'2006-05-14' union all
select 'a1','abc','ac','p06',230,230,'2006-05-13'

select * from input

declare @a varchar(2),@b varchar(3),@c varchar(2),@d int
select @a='a1',@b='ab',@c='ac',@d=100

 

declare @char1 varchar(10),@char2 int
select @char1=min(入库时间),@char2=min(库存数据)
from
(
select 入库时间,(select sum(库存数据) from input where 名称=a.名称 and 代号=a.代号 and 代号=a.代号 and 入库时间<=a.入库时间)as 库存数据
from input a
where 名称=@a and 代号=@b and 工号=@c
)a
where 库存数据>@d


update input
set 库存数据=0
where 入库时间<@char1
and 名称=@a and 代号=@b and 工号=@c

update input
set 库存数据=@char2-@d
where
入库时间=@char1 and 名称=@a and 代号=@b and 工号=@c

select * from input


drop table input

/*
名称   代号   工号   批次   入库数量        库存数据        入库时间      
---- ---- ---- ---- ----------- ----------- ----------
a1   ab   ac   p06  30          30          2006-05-12
a1   ab   ac   p06  50          50          2006-05-13
a1   ab   ac   p06  50          50          2006-05-14
a1   abc  ac   p06  230         230         2006-05-13

名称   代号   工号   批次   入库数量        库存数据        入库时间      
---- ---- ---- ---- ----------- ----------- ----------
a1   ab   ac   p06  30          0           2006-05-12
a1   ab   ac   p06  50          0           2006-05-13
a1   ab   ac   p06  50          30          2006-05-14
a1   abc  ac   p06  230         230         2006-05-13 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值