致_逝去的青春 2013-07-05 10:04 采纳率: 0%
浏览 936

游标问题 循环结果不是我所想要的。。

一 : 有一张表 Fl_RuKu -- 辅料入库表
另外有一张 fl_KuCun --辅料库存表
二 :初始的时候 Fl_RuKu 表 中有这样的数据
CSDN移动问答
三:运行完之后 fl_KuCun 表 中的数据是如下
CSDN移动问答
三 我觉得 当fl_kucun 表中的第四行数据 应该是10才对。。问题是出不来这个结果,

四:以下是我的代码
declare MyCursor cursor for select KuWei,ShuLiang from FL_RuKu
open MyCursor
declare @KuWei int
declare @ShuLiang decimal(18,2)
fetch next from MyCursor into @KuWei,@ShuLiang
while(@@FETCH_STATUS=0)
begin
declare @ShuLiang_KuCun decimal(18,2)
select top 1 @ShuLiang_KuCun=ShuLiang from FL_KuCun where KuWei=@KuWei order by KuCunID desc
begin

insert into FL_KuCun (KuWei,ShuLiang) values(@KuWei,ISNULL(@ShuLiang_KuCun,0)+@ShuLiang)

  end
fetch next from MyCursor into @KuWei,@ShuLiang

end
close MyCursor
deallocate MyCursor

  • 写回答

1条回答

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-27 10:55
    关注

    该回复引自免费微信小程序-皆我百晓生:


    根据您提供的代码,可以看出您使用了游标(cursor)在循环中进行了数据操作。在这段代码中,您通过游标从FL_RuKu表中选取了KuWei和ShuLiang两列的数据,然后在循环中根据KuWei在FL_KuCun表中查询最新的ShuLiang值,并将FL_RuKu表中的ShuLiang值插入到FL_KuCun表的相应行中。

    根据您的描述,您期望在执行完后,FL_KuCun表的第四行数据的ShuLiang值应该是10。如果最终结果与您的期望不符,有几个可能的原因:

    1. 数据问题:请确保FL_RuKu表中第四行的ShuLiang值确实是10,如果不是,则可能是数据本身的问题。

    2. 数据匹配问题:请确保FL_KuCun表中的KuWei和FL_RuKu表的KuWei能够正确地匹配。比如,如果FL_RuKu表中的第四行的KuWei与FL_KuCun表中的KuWei没有匹配的行,则无法得到您期望的结果。

    3. 数据查询问题:在查询FL_KuCun表的最新ShuLiang值时,您使用了"select top 1"和"order by KuCunID desc"来获取最新的值。请确保这部分查询逻辑是正确的,并且能够获取到您期望的最新值。

    4. 其他逻辑问题:在这段代码中,我没有看到明显的其他问题。但是如果整个流程还有其他逻辑,比如更新FL_RuKu表或其他的数据处理操作,请确保这部分逻辑是正确的。

    建议您逐步检查以上可能的问题,并确保每一步操作的正确性。除了调试代码逻辑,您还可以使用PRINT语句输出一些关键变量的值,以便更好地理解代码执行过程和调试问题。

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码