Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL LEFT JOIN in Spalten

Frage Entwicklung Datenbanken

Mitglied: StfnCstr

StfnCstr (Level 1) - Jetzt verbinden

03.11.2014, aktualisiert 14:50 Uhr, 1067 Aufrufe, 5 Kommentare

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
Mitglied: MadMax
LÖSUNG 03.11.2014, aktualisiert um 14:50 Uhr
Hallo,

geht tatsächlich einfach:
01.
select	n.PK, n.Vorname, n.Nachname, f.Nummer as Faxnummer, t.Nummer as Telnummer 
02.
from	Tabelle1 n 
03.
	join Tabelle2 f on f.FK = n.PK and f.Typ = 'Fax' 
04.
	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
Bitte warten ..
Mitglied: LianenSchwinger
03.11.2014 um 13:30 Uhr
Hallo,

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

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

G Jörg
Bitte warten ..
Mitglied: StfnCstr
03.11.2014, aktualisiert um 14:22 Uhr
Hallo,

danke für die Antworten.

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


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

Danke!
Bitte warten ..
Mitglied: LianenSchwinger
LÖSUNG 03.11.2014, aktualisiert 04.11.2014
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
Bitte warten ..
Mitglied: StfnCstr
03.11.2014 um 14:50 Uhr
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!
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst T-SQL: Inhalt verschiedener Spalten in eine Spalte schreiben (2)

Frage von Suilven zum Thema Datenbanken ...

Datenbanken
gelöst SQL Multiple Join auf selbe ID (3)

Frage von Memo66 zum Thema Datenbanken ...

Datenbanken
gelöst SQL ORDER BY und Join mit 2 Tabellen (7)

Frage von Dipps zum Thema Datenbanken ...

Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Windows Server

Exchange 2010 Active Directory und Windows Server 2016

(4)

Erfahrungsbericht von Herbrich19 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (44)

Frage von sabines zum Thema Internet ...

Netzwerke
Wie erstelle ich ein Intranet (19)

Frage von Leonardnet zum Thema Netzwerke ...

Netzwerke
VPN-Server einrichten PPTPD-Einrichtung gescheitert (15)

Frage von MIlexx zum Thema Netzwerke ...

LAN, WAN, Wireless
gelöst Eintägige Netzwerkunterbrechung trotz Backupleitung (15)

Frage von iAmbricksta zum Thema LAN, WAN, Wireless ...