产品结构BOM,是制造企业ERP系统的核心,订产品开发、订单报价、原物料采购、制令生产等等都以它为基础进行运算。
以下是鼎新ERP为例,给出在SQL后台如何取得一个产成品BOM明细的代码示例:
declare @maincode char(60)
set @maincode='xxxxxx'--产成品品号declare @i int
set @i=0
--定义主件品号临时表
declare @tmp_main table (品号 CHAR(60))
--将待查品号存入主件品号临时表
INSERT INTO @tmp_main SELECT MD003 FROM BOMMD WHERE MD001=@maincode
--定义BOM明细临时表
declare @tmp_bom table (主件品号 char(60),元件品号 char(60),组成用量 float,阶数 int)
--将待查品号下一级元件品号数据存入BOM明细临时表
insert into @tmp_bom select MD001,MD003,MD006,@i from BOMMD
where MD001 =@maincode
--如果BOMM表MD001(主件品号)存在于BOM明细临时表中的元件品号且阶数为当前最低层,进入循环
while exists(select * from BOMMD where MD001 in (select 元件品号 from @tmp_bom where 阶数=@i))
begin
--向BOM明细临时表插入BOMMD中MD001与主件品号临时表品号一致的数据(以主件品号临时表左关联BOMMD,存在多对一关系)
inser