SQL Pivot mit String
Ich habe zwei Tabellen in SQL Server: Kunde und Adresse
Kundentabelle:
<code>CustomerID FirstName LastName ----------- ---------- ---------- 1 Andrew Jackson 2 George Washington </code>
Adresstabelle:
<code>AddressID CustomerID AddressType City ----------- ----------- ----------- ---------- 1 1 Home Waxhaw 2 1 Office Nashville 3 2 Home Philadelphia </code>
Dies ist die Ausgabe, die ich brauche:
<code>CustomerID Firstname HomeCity OfficeCity ----------- ---------- ---------- ---------- 1 Andrew Waxhaw Nashville 2 George Philadelphia Null </code>
Dies ist meine Frage, aber sie liefert nicht das richtige Ergebnis:
<code>SELECT CustomerID, Firstname, HOme as HomeCity, Office as OfficeCity FROM (SELECT C.CustomerID, C.FirstName, A.AddressID, A.AddressType, A.City FROM Customer C, Address A WHERE C.CustomerID = A.CustomerID)as P PIVOT (MAX(city) FOR AddressType in ([Home],[Office])) as PVT </code>
Dies ist das Ergebnis, das ich erhalte:
<code>CustomerID Firstname HomeCity OfficeCity ----------- ---------- ---------- ---------- 1 Andrew Waxhaw NULL 1 Andrew NULL Nashville 2 George Philadelphia Null </code>
Wie Sie sehen, taucht Kunde 1 im Endergebnis zweimal auf. Ist es möglich, nur eine Zeile pro Kunde zu erhalten?
Ich habe dieses Beispiel nachgeschlagen, aber nicht geholfen: http: //stackoverflow.com/questions/6267660/sql-query-to-convert-rows-into-columns
Vielen Dank