需求:K3物料代码由于公司的编码规则变换,需要批量修改编码内容;
批量修改在数据库进行批处理的时候,需要注意几个问题:
1.物料表为关联表,主要个核心核算表为 T_ITEM,先通过表关联关系进行关联更新,更新时需要注意数据类别的区分;
其中 fitemclassid的分类不同,决定的数据不同 4:物料 2001:成本对象 一般存在这两种,其它的在数据字典中查询即可;
还要更新物料的父级归属内码,根据case函数进行判定,更新即可;
select * from t_ItemClass --查询各种代码的类别
--更新前需要关注提供数据表的准确唯一性
delete from yuanbiao$ where fitemid in (select fitemid from t_item where fnumber in (select fnumber from yuanbiao$))
--更新核算信息表,通过导入将需要更改的表导入数据库,随后进行联合查询更新;
update a set a.fnumber=b.new,a.FParentID=(case when left(b.new,8)='60.01.01' then 13635 when left(b.new,8)='60.01.02' then 13195 end)
from t_item a
inner join caisheet$ b on a.fnumber=b.old where a.FDeleted=0 and a.fitemclassid=4
2.更新 t_ICItemCore 物料核心信息表的物料代码,跟 t_item 联合跟新;
--实例为更新60.01.04的物料代码 update a set a.fnumber=b.fnumber, a.FParentID=b.FParentID from t_ICItemCore a inner join t_item b on a.fitemid=b.fitemid where b.fitemclassid=4 and b.fnumber like '60.01.04.%'
更新完成即可,更新前需要查询父级关键点的内码,方便更新,也可用编码更新;