![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Elite
![]() Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429
|
![]() Ich soll für unser Schulprojekt eine rekursive Beziehung auf sich selbst in einem Select abbilden (also z.B. wie im Forum das Drop-Downmenü).
Es gibt eine Tabelle Produkt mit ID, Produkt_ID, Bezeichnung, wobei Produkt_ID wiederum auf Produkt referenziert. Datenmässig schaut es momentan so aus: Code:
ID Produkt_ID Bezeichnung 1 null Produkt1 2 null Produkt2 3 null Produkt3 4 1 Produkt1.1 5 1 Produkt1.2 6 3 Produkt3.1 7 2 Produkt2.1 8 1 Produkt1.3 Code:
-Produkt1 |-Produkt1.1 |-Produkt1.2 |-Produkt1.3 -Produkt2 |-Produkt2.1 -Produkt3 |-Produkt3.1 |
![]() |
![]() |
![]() |
#2 |
Elite
![]() Registriert seit: 14.11.1999
Alter: 39
Beiträge: 1.429
|
![]() ps: hab noch meinen Versuch dazugestellt, ich arbeite allerdings mit der Originaltabelle, welche nicht ganz dem Schema entspricht, aber die Logik sollte ja gleich sein:
Code:
SQL> select * from stat_produkt; ID PRODUKT_ID EINHEIT_ID CODE BEZEICHNUNG ---------- ---------- ---------- -------------------- ---------------- 26 24 p21 produkt21 23 17 p1 Produkt1 24 p2 produkt2 25 23 19 p11 produkt11 27 24 18 p22 Produkt22 SQL> SQL> column padded_bez format a20 SQL> SQL> Select lpad(' ',(level-1)*2) || Bezeichnung as padded_bez 2 , ID , Produkt_ID, Einheit_ID, level 3 from stat_produkt connect by prior Id=Produkt_id; PADDED_BEZ ID PRODUKT_ID EINHEIT_ID LEVEL -------------------- ---------- ---------- ---------- ---------- produkt11 25 23 19 1 produkt21 26 24 1 Produkt22 27 24 18 1 Produkt1 23 17 1 produkt11 25 23 19 2 produkt2 24 1 produkt21 26 24 2 Produkt22 27 24 18 2 8 Zeilen ausgewählt. |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|