2016-06-24 47 views
0

我想从物料清单中提取递归数据,但在此之前,我需要查找表之间的关系。我无法弄清楚如何获得BOM及其子BOMS(基于下表)。跟踪关于如何获取BOM及其子BOM(物料清单)的过程

的表是:

部分:ID(PK),DefaultBOMID(FK从BOM表)

BOM:ID(PK)

BOMITEM:ID(PK),BOMID(FK从BOM表),PARTID(从部分表fk)

我会很感激,如果任何人都可以跟踪一个例子,所以我可以找出过程。

回答

0

得到一份兼职的第一级BOM,它看起来像你的查询看起来是这样的:

select BOMITEM.PARTID 
from PART.ID 
join BOMITEM 
on PART.DefaultBomID = BOMITEM.BOM 
where Part.ID = 'Part1' 

第二级会是什么样子:

select BOMITEM2.PARTID 
from PART.ID 
join BOMITEM 
on PART.DefaultBomID = BOMITEM.BOM 
join PART PART2 
on BOMITEM.PARTID = PART2.ID 
join BOMITEM BOMITEM2 
on PART2.DefaultBomID = BOMITEM2.BOM 
where Part.ID = 'Part1' 

不知道的目的BOM表,除了强制执行参照完整性我猜。我见过的大多数BOM表都是用像(ParentPart,CompoentPart,Route)这样的主键来构造的,所以它似乎是一个奇怪的结构。