2016-06-24 11 views
0

Ich möchte rekursive Daten aus einer Stückliste abrufen, aber zuvor muss ich die Beziehung zwischen den Tabellen finden. Ich kann nicht herausfinden, wie man zu einer Stückliste und ihren Unter-BOMs gelangt (basierend auf den folgenden Tabellen).Verfolgen Sie den Prozess, wie zu einer Stückliste und seinen Unterstücklisten (Stückliste)

Die Tische sind:

Teil: ID (pk), DefaultBOMID (fk aus BOM Tabelle)

BOM: ID (pk)

BOMITEM: ID (pk), BOMID (fk aus der Stücklistentabelle), PARTID (fk aus der Teiletabelle)

Ich würde mich freuen, wenn jemand ein Beispiel nachvollziehen könnte, damit ich den Prozess herausfinden kann.

Antwort

0

Um die erste Stufe BOM eines Teils zu erhalten, es sieht aus wie Ihre Frage etwas aussehen würde:

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

Zweite Ebene würde wie folgt aussehen:

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' 

nicht sicher, ob der Zweck die Stücklistentabelle, außer um referentielle Integrität zu erzwingen, denke ich. Die meisten Stücklisten-Tabellen, die ich gesehen habe, sind nur mit einem Primärschlüssel wie (ParentPart, CompoentPart, Route) strukturiert, so dass es scheint, eine ungerade Struktur zu sein.