aximand
Goto Top

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.

Content-Key: 755070582

Url: https://administrator.de/contentid/755070582

Printed on: May 21, 2024 at 11:05 o'clock

Member: em-pie
em-pie Jun 21, 2021 updated at 13:53:26 (UTC)
Goto Top
Moin,
easy going - hier auch mit Code-Tags face-wink

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 face-confused
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
Member: ukulele-7
Solution ukulele-7 Jun 21, 2021 at 14:08:14 (UTC)
Goto Top
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;
Member: Aximand
Aximand Jun 21, 2021 at 15:24:01 (UTC)
Goto Top
Ja danke, das lag mir auch so in etwa in den Gehirnwindungen wobei ich da an unterabfragen gedacht hatte.

Danke für das 2. Paar Augen und das 2. Gehirn, weil das ist jetzt -wo die Lösung vorhanden ist- eigentlich einfach.

Danke Dir!