以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- update时出错,提示溢出 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132084) |
-- 作者:happyft -- 发布时间:2019/3/13 16:20:00 -- update时出错,提示溢出 查询语句为 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。"", 为什么? 是更新时写法不对吗?原来一直都这样用,,谢谢! |
-- 作者:有点甜 -- 发布时间:2019/3/13 17:19:00 -- 你sum合计的值(1000001030700)大于int类型可以容纳的数值了。
方法一:你累计需求,改成双精度小数或者高精度小数或者长整型;
方法二:你的累计值是否统计错了?理清一下你的逻辑。 |
-- 作者:HappyFt -- 发布时间:2019/3/13 17:52:00 -- 我的意思是查询时显示都没有超出百万的值 ,没有这么大的值,但是改为update语句后就提示了,是否那个update语句的写法不正确?我没检查出来 |
-- 作者:有点甜 -- 发布时间:2019/3/13 18:26:00 --
请认真测试查看select语句,肯定是超出了范围的。
|