SQL Abfrage über 4 Tabellen mit Zeilen auf Spalten umwandlung

Alfred68

Neuer Benutzer
Beiträge
1
Hallo zusammen,

ich versuche ein Select Statemant zu erstellen für folgende 4 Tabellen.
das Ergebnis was ich erreichen möchte ist unten dargestellt. Es handelt sich um eine Oracle 11g DB
Über DB-Functions könnte ich es natürlich machen, ich würde dies aber gerne als reines SQL umsetzen.

kann mir jemand ein Tipp geben ?

vielen Dank schon mal

Code:
Table: T_A
A_id, A_name
1       a_n1
2       a_n2
3       a_n3

Table: T_P
P_id, P_name
1        p_n1
2        p_n2
3        p_n3

Table: T_L
L_id, L_A_id,       L_name
1      1            l_n1
2      1            l_n2
3      1            l_n3
4      2            l_n4
5      2            l_n5
6      2            l_n6

Table: T_G
G_id, G_P_id,         G_L_id,      G_value
1        1            1            J
2        1            2            J
3        1            3            J
4        2            4            N
5        2            5            N
6        2            6            J
7        3            1            N
8        3            2            J
9        3            3            N
-
-----
Relations:
T_A  1:n  T_L     3 Rows
T_L  n:m  T_G 
T_P  1:n  T_G

oder :
T_A          T_P
1:n           1:n
T_L  n:m  T_G

ZIEL:
P_id, A_id,      v1,    v2,   v3
1        1        J     J     J
2        2        N     N     J
3        1        N     J     N
 
Werbung:
Hi Alfred68,

dachtest du an Etwas in dieser Art:
Code:
WITH
A AS (
SELECT "P_id", "A_id", "L_id", "G_value"
FROM "T_G"
INNER JOIN "T_P"
ON "G_P_id" = "P_id"
INNER JOIN "T_L"
ON "G_L_id" = "L_id"
INNER JOIN "T_A"
ON "L_A_id" = "A_id"
),
B AS (SELECT * FROM A),
C AS (SELECT * FROM A)

SELECT A."P_id" AS P_id, A."A_id" AS A_id, A."G_value" AS v1, B."G_value" AS v2, C."G_value" AS v3
FROM A
INNER JOIN B
ON A."P_id" = B."P_id"
INNER JOIN C
ON A."P_id" = C."P_id"
WHERE A."L_id" < B."L_id"
AND B."L_id" < C."L_id"

Gruß
Hony
 
Werbung:
Hier mal ein einfaches SQL-Dump für SQLite. Sollte daher mit jeder Datenbank funktionieren.

Datenbanken ohne CTE können auch eine Sicht/View nutzen.
 

Anhänge

  • Alfred68DB.sql.txt
    1,3 KB · Aufrufe: 1
Zurück
Oben