这段更新语句是将即时库存GUID更新到业务单据数据临时表上,
业务单据数据与即时库存表库存全维度关联后,仍存在多行,说明账套中存在异常数据导致。
适用范围:库存相关报表,包括账龄、呆滞料、收发报表提示语句相同,造成问题原因相同。
异常类型:
单位不一致:即时库存表存在全维度唯一索引,除维度字段外单位字段不一致会导致上述异常。
生产日期、有效期至带时分秒:获取业务单据数据时对数据做了格式化,如果存在时分秒会导致上述异常。
项目编号字段有值:系统项目编号是预留后续使用,如果二开使用这个字段导致有值则会导致上述异常。
除已知上述原因外导致异常。
分析解决:
单位不一致
原因:物料发生业务后,再修改物料基本单位、库存单位、辅单位,会导致与即时库存以及结存数据单位不一致,引起库存报表、库存单据更新等异常。
解决:修改单位后,需要保持业务单据表、结存表、即时库存表与物料上的单位一致。
操作步骤参考:异常重复库存数据分析方法 即时库存校对报错
生产日期、有效期至带时分秒
原因:系统库存单据生产日期、有效期至都是短日期格式,无法录入带时分秒数据,但是如果导入数据或者其他二开功能则会引入这种数据,引起库存等功能异常。
解决:查找异常源单,修复为短日期格式。
操作步骤:
1.检查异常存在哪期:检查结存数据异常来源哪一期,反关账至对应异常那期。
SELECT * FROM dbo.T_STK_INVBAL WHERE FEXPIRYDATE > CONVERT(varchar(10),FEXPIRYDATE,23) OR FPRODUCEDATE > CONVERT(varchar(10),FPRODUCEDATE,23);
复制代码
2.检查当期异常单据数据来源:管理员开启校对记录中间结果,校对后查询看哪些单据数据异常。
SELECT * FROM T_STK_STKBALOCCUR WHERE FEXPIRYDATE > CONVERT(varchar(10),FEXPIRYDATE,23) OR FPRODUCEDATE > CONVERT(varchar(10),FPRODUCEDATE,23);
复制代码
3.修复异常单据数据:查找出异常单据数据后更新对应单据日期问题。举例如下:
UPDATE T_SAL_OUTSTOCKENTRY SET FEXPIRYDATE = CONVERT(varchar(10),FEXPIRYDATE,23) WHERE FEXPIRYDATE > CONVERT(varchar(10),FEXPIRYDATE,23);
复制代码
4.修复完后,执行校对,然后关账至本期。
项目编号字段有值
原因:业务单据数据与即时库存表库存全维度关联,是除了项目编号维度外来关联的,如果存在一个库存维度下多个项目编号值就会引起很多异常。
解决:查找使用项目编号单据,清空改值再校对(最新补丁报表已经支持项目编号取数170720)
推荐阅读