致_逝去的青春 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语句输出一些关键变量的值,以便更好地理解代码执行过程和调试问题。

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型