Eine Art JOIN auf die zu abfragende Tabelle
Hallo,
ich habe in einer Tabelle Daten die wie wie folgt aussehen:
KDNR, NAME, BONUSSTUFE1, BONUSSTUFE2, BONUSSTUFE3
In den Feldern BONUSSTUFE steckt nun eine KDNR aus dieser Tabelle drin
1, Fa. Mustermann, 2,3,3
2, Fa XYZ, NULL,3,NULL
3, Fa 4711, NULL,NULL,NULL
Wenn ich jetzt eine Abfrage "Select * from" mache, dann möchte ich erreichen, dass neben den KDNR der BONUSSTUFE auch der Name "Fa XYZ" oder "Fa 4711" aufeglöst wird
Als Ergebnis also bei einem "Select * from irgendwas where KDNR =2" sollte rauskommen:
KDNR, Name, Bonusstufe1, KDName.Bonusstufe1, Bonusstufe2, KDName.Bonusstufe2, Bonusstufe3, KDName.Bonusstufe3
2, FA XYZ, NULL, NULL, 3, Fa 4711, NULL, NULL
Ich weiß nicht ob ich das gut erklärt habe, ansonsten löchert mich doch bitte.
ich habe in einer Tabelle Daten die wie wie folgt aussehen:
KDNR, NAME, BONUSSTUFE1, BONUSSTUFE2, BONUSSTUFE3
In den Feldern BONUSSTUFE steckt nun eine KDNR aus dieser Tabelle drin
1, Fa. Mustermann, 2,3,3
2, Fa XYZ, NULL,3,NULL
3, Fa 4711, NULL,NULL,NULL
Wenn ich jetzt eine Abfrage "Select * from" mache, dann möchte ich erreichen, dass neben den KDNR der BONUSSTUFE auch der Name "Fa XYZ" oder "Fa 4711" aufeglöst wird
Als Ergebnis also bei einem "Select * from irgendwas where KDNR =2" sollte rauskommen:
KDNR, Name, Bonusstufe1, KDName.Bonusstufe1, Bonusstufe2, KDName.Bonusstufe2, Bonusstufe3, KDName.Bonusstufe3
2, FA XYZ, NULL, NULL, 3, Fa 4711, NULL, NULL
Ich weiß nicht ob ich das gut erklärt habe, ansonsten löchert mich doch bitte.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 755070582
Url: https://administrator.de/contentid/755070582
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
3 Kommentare
Neuester Kommentar
Moin,
easy going - hier auch mit Code-Tags
Grundlagen SQL/ JOIN gibbet hier:
https://docs.microsoft.com/de-de/sql/relational-databases/performance/jo ...
https://riptutorial.com/sql/example/14930/differences-between-inner-oute ...
Vergiss das Alles!
Wer lesen kann
Wie viele Bonusstufen bzw. Kunden können maximal existieren?
Wenn unendlich, fällt mir ad hoc nichts ein.
Mit UNPIVOT() müsste es IMHO eine gleichbleibende Anzahl sein.
Gruß
em-pie
SELECT
bs.KDNR
, k.NAME
, bs.BONUSSTUFE1
, bs.BONUSSTUFE2
, bs.BONUSSTUFE3
FROM bonusstufe AS bs
INNER JOIN kunden AS k
on bs.KDNR = k.KDNR
WHERE bs.KDNR = 2
Grundlagen SQL/ JOIN gibbet hier:
https://docs.microsoft.com/de-de/sql/relational-databases/performance/jo ...
https://riptutorial.com/sql/example/14930/differences-between-inner-oute ...
Vergiss das Alles!
Wer lesen kann
KDNR, Name, Bonusstufe1, KDName.Bonusstufe1, Bonusstufe2, KDName.Bonusstufe2, Bonusstufe3, KDName.Bonusstufe3
2, FA XYZ, NULL, NULL, 3, Fa 4711, NULL, NULL
Wie viele Bonusstufen bzw. Kunden können maximal existieren?
Wenn unendlich, fällt mir ad hoc nichts ein.
Mit UNPIVOT() müsste es IMHO eine gleichbleibende Anzahl sein.
Gruß
em-pie
Du suchst vermutlich das hier:
SELECT tabelle.KDNR,
tabelle.NAME,
tabelle.BONUSSTUFE1,
t1.name AS bonusstufe1_name,
tabelle.BONUSSTUFE2,
t2.name AS bonusstufe2_name,
tabelle.BONUSSTUFE3,
t3.name AS bonusstufe3_name
FROM tabelle
LEFT JOIN tabelle t1
ON tabelle.BONUSSTUFE1 = t1.KDNR
LEFT JOIN tabelle t2
ON tabelle.BONUSSTUFE1 = t2.KDNR
LEFT JOIN tabelle t3
ON tabelle.BONUSSTUFE1 = t3.KDNR;