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条)