Hallo Forum,
ich habe folgendes Problem:
Tabelle 1 = Kunden
Tabelle 2 = Adressen
Tabelle 3 = Kontaktdaten (email, Telefon, Handy etc. in einer Spalte)
Tabelle 4 = Kontaktart (nur IDs)
Tabelle 5 = Hilfstabelle mit Texten für IDs aus Tabelle 4
Daran kann ich auch nichts ändern.
In folgendem Script zeigt er mir alle Daten korrekt an (allerdings mehrere Zeilen wenn bei einer Adresse mehrere Kontaktdaten hinterlegt sind. Wenn keine Kontaktdaten vorhanden, wird in NULL ausgegeben):
select * from Tabelle1 a
left join Tabelle3 b on a.addressID = b.addressID
Daher wollte ich die Daten aus Tabelle3 entsprechend aus einer Spalte in mehrere Spalten aufteilen und nur gewisse Spalten ausgeben:
select *, [Telefon], [Mobil], [Telefax], [e-Mail]
from
(
Select
a.Kundennummer,
a.addressID,
b.Vorname,
b.Nachname,
e.Text,
c.Kontaktdaten
from Tabelle1 a
inner join Tabelle2 b
on a.addressID = b.addressID
left join Tabelle3 c
on a.addressID = c.addressID
inner join Tabelle4 d
on c.KontaktartID = d.KontaktartID
inner join Tabelle5 e
on e.ID = d.ID
) d
pivot
(
max(Kontaktdaten)
for text in ([Telefon], [Mobil], [Telefax], [e-Mail])
) piv;
Mein Problem ist nun, dass er mir die Kunden, die keine Kontaktdaten hinterlegt haben, auch nicht anzeigt und nicht wie in diesem Script:
select * from Tabelle1 a
left join Tabelle3 b on a.addressID = b.addressID
die entsprechenden Felder mit NULL ausgibt.
Ich hoffe das ist verständlich und einer von euch kann mir helfen.
Danke & Gruß
DBFBKA
ich habe folgendes Problem:
Tabelle 1 = Kunden
Tabelle 2 = Adressen
Tabelle 3 = Kontaktdaten (email, Telefon, Handy etc. in einer Spalte)
Tabelle 4 = Kontaktart (nur IDs)
Tabelle 5 = Hilfstabelle mit Texten für IDs aus Tabelle 4
Daran kann ich auch nichts ändern.
In folgendem Script zeigt er mir alle Daten korrekt an (allerdings mehrere Zeilen wenn bei einer Adresse mehrere Kontaktdaten hinterlegt sind. Wenn keine Kontaktdaten vorhanden, wird in NULL ausgegeben):
select * from Tabelle1 a
left join Tabelle3 b on a.addressID = b.addressID
Daher wollte ich die Daten aus Tabelle3 entsprechend aus einer Spalte in mehrere Spalten aufteilen und nur gewisse Spalten ausgeben:
select *, [Telefon], [Mobil], [Telefax], [e-Mail]
from
(
Select
a.Kundennummer,
a.addressID,
b.Vorname,
b.Nachname,
e.Text,
c.Kontaktdaten
from Tabelle1 a
inner join Tabelle2 b
on a.addressID = b.addressID
left join Tabelle3 c
on a.addressID = c.addressID
inner join Tabelle4 d
on c.KontaktartID = d.KontaktartID
inner join Tabelle5 e
on e.ID = d.ID
) d
pivot
(
max(Kontaktdaten)
for text in ([Telefon], [Mobil], [Telefax], [e-Mail])
) piv;
Mein Problem ist nun, dass er mir die Kunden, die keine Kontaktdaten hinterlegt haben, auch nicht anzeigt und nicht wie in diesem Script:
select * from Tabelle1 a
left join Tabelle3 b on a.addressID = b.addressID
die entsprechenden Felder mit NULL ausgibt.
Ich hoffe das ist verständlich und einer von euch kann mir helfen.
Danke & Gruß
DBFBKA