SQL Server に Customer と Address の 2 つのテーブルがあります。
顧客テーブル:
CustomerID FirstName LastName
----------- ---------- ----------
1 Andrew Jackson
2 George Washington
アドレス テーブル:
AddressID CustomerID AddressType City
----------- ----------- ----------- ----------
1 1 Home Waxhaw
2 1 Office Nashville
3 2 Home Philadelphia
これは私が必要とする出力です:
CustomerID Firstname HomeCity OfficeCity
----------- ---------- ---------- ----------
1 Andrew Waxhaw Nashville
2 George Philadelphia Null
これは私のクエリですが、正しい結果が得られません:
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
これは私が得ている結果です:
CustomerID Firstname HomeCity OfficeCity
----------- ---------- ---------- ----------
1 Andrew Waxhaw NULL
1 Andrew NULL Nashville
2 George Philadelphia Null
ご覧のとおり、顧客 1 は最終結果に 2 回表示されています。顧客ごとに 1 つの行のみを取得することは可能ですか?
この例を調べましたが、役に立ちませんでした: http://stackoverflow.com/questions/6267660/sql-query-to-convert-rows-into-columns
ありがとう