2014-07-24 17 views
0
USE oB 

--Consent for release of Insurance Information-- 
SELECT 
    a.objectID, 
    LTRIM(RTRIM(a.attr1397)) 'LastName', 
    LTRIM(RTRIM(a.attr1395)) 'FirstName', 
    LTRIM(RTRIM(a.attr1400)) 'ID', 
    LTRIM(RTRIM(b.attr1624)) 'Car Name', 
    LTRIM(RTRIM(b.attr1626)) 'Pol Number' 
FROM 
    dbo.nstance1029 a 
LEFT OUTER JOIN 
    dbo.nstance1048 b ON a.objectid = b.fk16 

將會產生這樣的:如何將所有行合併成一個

enter image description here

我怎樣才能修改查詢,以便對每個a.objectID/LastName/FirstName/ID The Car Name/Pol Name出現在同一行,而不是多行的?

+1

安多*如何*必須將多個車名pol數合併成一行?連接或什麼?請添加詳細信息。 – Frazz

+0

保單號碼怎麼樣?看起來任何objectid/etc都有不同的值。 – Andrew

+0

閱讀數據透視表和'for xml' – Tobb

回答

1

交叉應用會出現一些這樣的事:

SELECT 
     a.objectID, 
     LTRIM(RTRIM(a.attr1397)) 'LastName', 
     LTRIM(RTRIM(a.attr1395)) 'FirstName', 
     LTRIM(RTRIM(a.attr1400)) 'ID', 
     temp.cars 'Car Name', 
     temp.PolNumber 'Pol Number' 
    FROM 
     dbo.nstance1029 a 
    CROSS APPLY (
     SELECT LTRIM(RTRIM(b.attr1624)) + ',' 
     FROM nstance1048 AS b 
     WHERE a.objectid = b.fk16 
     FOR XML PATH('')) 
     temp(cars) 
    CROSS APPLY (
     SELECT LTRIM(RTRIM(b.attr1626)) + ',' 
     FROM nstance1048 AS b 
     WHERE a.objectid = b.fk16 
     FOR XML PATH('')) 
     temp(PolNumber) 
+0

謝謝您的查詢。 – Si8

1

根據輸出結果,您有一些數據具有相同的ID,姓氏,名字,ID但車名和車號不是。您可以添加DISTINCT和/或GROUP BY,但你仍然會有,因爲波爾號碼和名稱的對象ID,LN,FN,ID多行是不一樣的

+0

它不會看到不同的POL或CAR名稱......我要求的是每個人,根據行顯示其自己的列中的每一個。 – Si8

相關問題