南宁十五中校草许煜:急!!!SQL SERVER查询的问题(谁能做出给加到200分!!!)

来源:百度文库 编辑:高校问答 时间:2024/05/15 04:44:09
有这样一个表
CODE NAME DATE INQTY OUTQTY
A001 A商品 2006-01-01 5 0
A001 A商品 2006-01-01 2 0
A001 A商品 2006-01-01 0 3
A001 A商品 2006-01-01 1 0
A001 A商品 2006-01-01 0 3

要求做成这样的查询结果
CODE NAME DATE INQTY OUTQTY KC
A001 A商品 2006-01-01 5 0 5
A001 A商品 2006-01-01 2 0 7
A001 A商品 2006-01-01 0 3 4
A001 A商品 2006-01-01 1 0 5
A001 A商品 2006-01-01 0 3 2

注:CODE-商品编号,NAME-商品名称,DATE-日期,INQTY-进货数量,OUTQTY-出货数量,KC-当前库存

你把要求写详细点的 没看明白什么东西啊 还有楼上你写的SQL肯定是不行他这个要是写好了后 一条语句就可以实现你弄的那是什么啊 还游标都用上了
QQ:51606768

kc拿的上一次计算的结果然后再进行计算的,所以可能要先设置变量。

--假设表名为tab1
alter tab1 add kc int--修改原表,添加一个余额字段
declare cur cursor for select inqty,outqty from tab1 where code='A001' --定义一个游标查询A001的进货数和出货数
open cur --打开游标

declare @innum int --变量保存进货数
declare @outnum int --变量保存出货数
declare @kcnum int --变量保存余额

fetch from cur into @innum,@outnum --提取第一条记录的进货数与出货数
set @kcnum=0 --余额设为零

while @@fetch_status=0 --循环直至取完A001的所有记录
begin
update tab1 set kc=@kcnum+inqty-outqty where current of cur --用余额加上进货数减去出货数更新余额字段
set @kcnum=@kcnum+@innum-@outnum --保存余额数备下一次用
fetch from cur into @innum,@outnum --循环内继续提取记录
end

close cur --关闭游标
deallocate cur --删除游标

我调试过了,可以得到结果,当然这还只能对一种商品记流水账,剩下的靠你去扩展了
实现起来有点复杂,期望高人有更简单的办法