我想从材料清单中获取递归数据,但在此之前,我需要找到表之间的关系。我不知道如何获得一个BOM和它的子BOM(基于下面的表格)。
这些表格是:
部分: ID (pk),DefaultBOMID ( BOM表中的fk)
BOM: ID (pk)
BOMITEM: ID(pk),BOMID ( BOM表中的fk),PARTID (来自部件表的fk)
如果有人能追踪一个例子,我会很感激,这样我就能搞清楚这个过程。
发布于 2016-06-24 20:59:31
要获得部件的第一级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)来构造的,所以它看起来确实是一个奇怪的结构。
https://stackoverflow.com/questions/38021842
复制相似问题