create procedure CalcKC
--严格来说,此处应有参数,设置计算的库存,是哪个期间的,比如是五月的还是六月的
as
begin
declare
@tempID varchar(30)
declare
@CKSL int
declare CKcur cursor
for
select 产品ID,出库数量 from 出库明细表
--严格来说,此处选择的也应有限制,比如说订单是在指定期间内的,
--又比如说应该设置标记,如果处理过了就标记掉,防止重复处理,又给补充处理留口子
--
for read only
open cursor CKcur
fetch CKcur into @tempID,@CKSL
while (@@sqlstatus = 0)
begin
update 库存表 set 库存=期初库存-@CKSL --变量
where 产品名称=@tempID --变量
--如果过程有期间参数,就可以在这儿用,只更新本期的库存
--你的表里没有看到库存是哪个期的
fetch CKcur into @tempID,@CKSL
end
close CKcur
deallocate cursor CKcur
end