Wie alle rekursiven Kinder von übergeordneten Zeile in Oracle SQL Stack-Überlauf abrufen

Ich habe eine rekursive Abfrage bekam, die wirklich vor sich die Grenzen dieses Java Affen SQL-Kenntnisse Stretching. Jetzt, wo es endlich 01.30 im AM ist, ist es wahrscheinlich Zeit zu beginnen, um etwas Hilfe suchen. Dies ist eines der wenigen Male, Google hat mich im Stich gelassen.

Die Tabelle ist wie folgt:

Ich versuche, das folgende Ergebnis zu erhalten, in dem die Eltern für jedes Kind unter ihnen aufgeführt hat. Beachten Sie, dass die Kaskade der Menge als auch.

Ich habe ohne Erfolg mehrere Abweichungen von der folgenden versucht.

Ich bin mit der Oracle-Datenbank. Irgendwelche Vorschläge, Ideen, usw. würden sehr geschätzt. Dies scheint der Nähe, aber ich bin nicht sicher, ob es ist, was ich suche: Retreive alle Kinder und ihre Kinder, rekursive SQL

Basierend auf (Retreive alle Kinder und deren Kinder, rekursive SQL) Ich habe auch die folgenden aber erhalten eine versuchte "illegale Referenz ofa Abfragenamen in WITH-Klausel" Fehler:

Hallo Olaf. Diese besondere Struktur Modelle eine Bill of Material (BOM). Es ist eine Art und Weise zu beschreiben, welche Komponenten andere Komponenten bilden. Die kurze davon ist, dass die Komponente qtys multiplikativ sind. Zum Beispiel, wenn es 2 27s in einem 25 sind, dann gäbe es 4 31s in einem 25. Ein Blick zurück, ich habe einen Tippfehler in meinem ursprünglichen Beitrag zu machen. Es sollte 30 sein nur 1 in 25. – Will Lovett 28. Juni ’13 um 16:14 Uhr

2 Antworten

@AlexPoole Antwort ist groß, ich will nur mit intuitiver Variante der Abfrage seiner Antwort zu erweitern für Werte entlang eines Weges zu addieren.
Diese Variante basiert auf rekursiven Unterabfrage Factoring-Funktion eingeführt in Oracle 11g R2.

SQLFiddle Beispiel (mit einer Datenreihe erweitert Arbeit mit mehr als zwei Ebenen zu demonstrieren)

Auf mehr Frage, wenn Sie können. Wenn ich versuche, Ihre Abfrage in eine Ansicht zu drehen, erhalte ich eine Ausnahme SQL Parse: Fehler (n) Analyse SQL: Syntaxfehler in der Nähe von ! in den folgenden: mit !* Recursion_view (Basis, parent_id, child_id, Menge) als (Syntaxfehler in der Nähe von *! im folgenden: mit recursion_view * * (Basis, parent_id, child_id, Menge) als ( – Will Lovett 28. Juni ’13 um 16:25 Uhr

Quelle: stackoverflow.com

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

acht − 2 =