金蝶物料汇总表查询提示:将numeric 转换为数据类型numeric时出现算术溢

金蝶物料汇总表查询提示:将numeric 转换为数据类型numeric时出现算术溢


2024年6月5日发(作者:)

若有需要帮助扣扣我25079537

症状:

金蝶K3物料汇总表,在外面点菜单,输入条件后点查询,没有弹出查询结果界面,好像系统没反应

或先查询一个正常的数据,在查询结果界面,点过滤,再输入原来的 条件,此时会弹出一个错误的窗口

将 numeric 转换为数据类型 numeric 时出现算术溢出错误。

1

分析:

--因为数量精度为

--由于金蝶bug,完全出库后数量不为零,物料余额表中的数量无限小(小于数量精度),且有余额

--物料汇总表是查询语句倒算价格(金额除以数量),相除后导致单价超级大,导致数据溢出,(真是奇葩的查询语句,

金蝶的设计也是极有问题,跟SAP的物料账比起来简直像小孩子玩儿)

--用语句筛选有问题的物料,要符合如下条件:

--期初数量不等于0,且绝对值小于0.01,期初金额不为0

--期末数量不等于0,且绝对值小于0.01,期末金额不为0

2

select r,a.* from ICInvBal a

join t_ICItem b

on D=D

3

where D in (select FItemID from t_ICItem where FNumber like '12.%')

and ID=7913 --仓库代码

and abs(y)<0.01 --期初数量不等于0,且绝对值小于0.01,期初金额不为0

and abs(y)<>0

and l<>0

select r,a.* from ICInvBal a

join t_ICItem b

on D=D

where D in (select FItemID from t_ICItem where FNumber like '12.%')

and ID=7913 --仓库代码

and abs(y)<0.01 --期末数量不等于0,且绝对值小于0.01,期末金额不为0

and abs(y)<>0

and l<>0

解决:

--修改语句,数据库中将期间的期初数量和期末数量四舍五入,精度保持在物料设置中的数量精度

--四舍五入期初数量

--update ICInvBal set FBegQty=ROUND(FBegQty,2) where FItemID in (select FItemID from t_ICItem

where FNumber like '12.%') and FStockID=7913 and abs(FBegQty)<0.01 and FBegQty<>0 and

FBegBal<>0

--四舍五入期末数量

--update ICInvBal set FEndQty=ROUND(FEndQty,2) where FItemID in (select FItemID from t_ICItem

where FNumber like '12.%') and FStockID=7913 and abs(FEndQty)<0.01 and FEndQty<>0 and

FEndBal<>0

脚本.txt

4


发布者:admin,转转请注明出处:http://www.yc00.com/web/1717568342a2740369.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信