111945
Goto Top

SQL LEFT JOIN in Spalten

Hallo,

ich sehe mal wieder den Wald vor lauter Bäumen nicht.

Ich habe 2 Tabellen

Tabelle 1:

PK, Vorname, Nachname
1, Manuel, Mustermann
2, Manuela, Musterfrau

Tabelle 2:
FK, Typ, Nummer
1, Tel, 123456
1, Fax, 654321
2, Tel, 111222333
3, Fax, 333222111

Angezeigt will ich folgendes haben

PK, FK, Vorname, Nachname, Faxnummer, Telnummer
1, 1, Manuel, Mustermann, 654321, 123456
2, 2, Manuela, Musterfrau, 333222111,111222333


Ich will die ganze Zeit unterabfragen verwenden, doch da gibts bestimmt einen einfacheren Weg.

Danke und Grüße

Content-Key: 253657

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

Printed on: April 24, 2024 at 20:04 o'clock

Member: MadMax
Solution MadMax Nov 03, 2014 updated at 13:50:43 (UTC)
Goto Top
Hallo,

geht tatsächlich einfach:
select	n.PK, n.Vorname, n.Nachname, f.Nummer as Faxnummer, t.Nummer as Telnummer
from	Tabelle1 n
	join Tabelle2 f on f.FK = n.PK and f.Typ = 'Fax'  
	join Tabelle2 t on t.FK = n.PK and t.Typ = 'Tel'  

Ggf. muß statt des join ein left join genommen werdne, das mußt Du dann wissen. Außerdem gehe ich mal davon aus, daß zu einer Person nur eine Fax- und eine Telefonnr. gehören, sonst kommen da natürlich mehr Zeilen pro Person raus.

Gruß, Mad Max
Member: LianenSchwinger
LianenSchwinger Nov 03, 2014 at 12:30:19 (UTC)
Goto Top
Hallo,

Lösung von Mad Max ist ja schon mal richtig. face-smile

Dennoch die Frage nach der verwendeten Datenbank. Es gibt je nach DB auch die Möglichkeit Pivot-Funktionen zu nutzen.

G Jörg
Mitglied: 111945
111945 Nov 03, 2014 updated at 13:22:40 (UTC)
Goto Top
Hallo,

danke für die Antworten.

Ich habs jetzt mal so umgesetzt, wie du vorgeschlagen hast. Leider kommt dabei kein Ergebnis raus.


SELECT   n.[No_]
		,n.Name
		,f.[Communication Type Code] as Faxnummer
		,t.[Communication Type Code] as Telnummer
FROM	[BL-CRM$Contact] n
		left join [BL-CRM$Communication Line] f on f.[Contact No_] = n.[No_] and f.[Communication Type Code] = 'Fax'  
		left join [BL-CRM$Communication Line] t on t.[Contact No_] = n.[No_] and t.[Communication Type Code] = 'Tel'  
Er Zeigt mir dann den Namen an, aber bei den Rufnummern wird NULL ausgegeben. Ideen?

Danke!
Member: LianenSchwinger
Solution LianenSchwinger Nov 03, 2014, updated at Nov 04, 2014 at 07:11:18 (UTC)
Goto Top
Hallo,

in den JOINS hast Du auf die Spalte [Communication Type Code] geprüft und läßt Dir auch den Inhalt oben ausgeben.
Das ist bestimmt nicht so gewollt sondern hier sollte wohl die jeweilige Nummer stehen, oder?

,f.[Communication Type Code] as Faxnummer
,t.[Communication Type Code] as Telnummer

G Jörg
Mitglied: 111945
111945 Nov 03, 2014 at 13:50:39 (UTC)
Goto Top
Ja genau, das habe ich auch festgestellt, danachdem ich den Beitrag verfasst habe.

Habe den Fehler jetzt auch gefunden.... TEL sollt man auch groß schreiben, wenn es so in der Datenbank hinterlegt ist..


Vielen Dank für die Hilfe!