Foxtable(狐表)用户栏目专家坐堂 → update时出错,提示溢出


  共有2203人关注过本帖树形打印复制链接

主题:update时出错,提示溢出

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
update时出错,提示溢出  发帖心情 Post By:2019/3/13 16:20:00 [只看该作者]

 查询语句为       
SELECT  a.产品编码 ,a.序号 ,a.去库存需求 ,( SELECT    SUM(去库存需求) FROM  #qkc b WHERE a.产品编码 = b.产品编码 AND b.序号 <= a.序号
AS 去库存总需求  FROM  #qkc a

 更新语句为
UPDATE  #qkc  SET  累计需求 = ( SELECT SUM(去库存需求)  FROM   #qkc b WHERE  b.产品编码 = a.产品编码  AND b.序号 <= a.序号)
FROM    #qkc a;

查询语句执行没有问题,,更新时会出错,提示为  "类型 int 发生算术溢出错误,值 = 1000001030700.000000。"", 为什么?
是更新时写法不对吗?原来一直都这样用,,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/13 17:19:00 [只看该作者]

你sum合计的值(1000001030700)大于int类型可以容纳的数值了。

 

方法一:你累计需求,改成双精度小数或者高精度小数或者长整型;

 

方法二:你的累计值是否统计错了?理清一下你的逻辑。


 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/3/13 17:52:00 [只看该作者]

我的意思是查询时显示都没有超出百万的值 ,没有这么大的值,但是改为update语句后就提示了,是否那个update语句的写法不正确?我没检查出来

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/13 18:26:00 [只看该作者]

 

请认真测试查看select语句,肯定是超出了范围的。

 

 


 回到顶部