2013-12-17 85 views
-3

我試圖在SQL SERVER 2008中創建一個查詢,該查詢將在每個賬戶中將多行顯示爲單行。將多行組合成單行

該表是當前顯示像這樣的數據...(也CDS的每個帳戶的數目是不一樣的)

表查詢

SELECT 
    [ACCOUNTNO] 
    ,DT 
    ,POSTDT 
    ,CD 
    ,NO 
    ,SEQNO 
FROM [dbo].[DInformation] 

結果

ACCOUNTNO DT   POSTDT  CD  NO SEQNO 
50000878915 06/29/2011 06/29/2011 52074 639 2005 
50000878915 07/03/2008 07/03/2008 6650222 749 3008 
50000878915 07/03/2008 07/09/2008 6720030 644 3032 
50000878915 07/23/2008 07/23/2008 99801 995 2055 
50000878915 07/23/2008 07/23/2008 99801 995 2056 
50000878915 07/23/2008 07/23/2008 7109045 994 2134 
50000878915 07/10/2008 07/10/2008 52017 996 169 
50000878915 07/23/2008 07/23/2008 99801 995 2055 
50000878915 07/23/2008 07/23/2008 99801 995 2056 
50000878915 07/23/2008 07/23/2008 30010 992 2087 
50000878915 07/23/2008 07/23/2008 52038 993 2032 
65478078915 10/01/2012 01/09/2013 6910002 871 3076 
65478078915 11/01/2012 01/09/2013 6910002 888 3055 
65478078915 12/01/2012 01/09/2013 6910002 6 3085 
65478078915 01/01/2013 02/06/2013 6910002 918 3009 
65478078915 02/01/2013 03/05/2013 6910002 668 3018 
65478078915 03/01/2013 04/04/2013 6910002 24 3065 

我希望顯示的結果像這樣...

50000878915 06/29/2011 06/29/2011 52074 639 2005 07/03/2008 07/03/2008  6650222 749 3008 07/03/2008 07/09/2008 6720030 644 3032 07/23/2008 07/23/2008 99801 995 2055 07/23/2008 07/23/2008 99801 995 2056 07/23/2008 07/23/2008 7109045 994 2134 07/10/2008 07/10/2008 52017 996 169 07/23/2008 07/23/2008 99801 995 2055 07/23/2008 07/23/2008 99801 995 2056 07/23/2008 07/23/2008 30010 992 2087 07/23/2008 07/23/2008 52038 993 2032 
65478078915 10/01/2012 01/09/2013 6910002 871 3076 11/01/2012 01/09/2013 6910002 888 3055 12/01/2012 01/09/2013 6910002 6 3085 01/01/2013 02/06/2013 6910002 918 3009 02/01/2013 03/05/2013 6910002 668 301803/01/2013 04/04/2013 6910002 24 3065 

任何幫助將是非常讚賞

+0

你能用文字解釋你想要做什麼嗎? –

+0

你想獲得每個賬戶最古老的DT嗎? – PeterRing

+0

你在做什麼請詳細解釋 – Anjali

回答

-1

你可以使用XML功能,如果你只是想一一列舉出來像你的樣品顯示:

SELECT DISTINCT 
     ACCOUNTNO 
     ,STUFF((SELECT DISTINCT ',' + CONCAT(DT,POSTDT,CD,NO,SEQNO) 
       FROM Table1 a 
       WHERE a.ACCOUNTNO = b.ACCOUNTNO 
       FOR XML PATH(''), TYPE).value('.', 'VARCHAR(MAX)'),1,1,'') 

FROM Table1 b 

演示:SQL Fiddle

如果你想擁有他們是適當的領域,然後你看着一些PIVOT行動。

編輯:注意2012年增加了CONCAT()函數,如果使用以前版本將每個字段轉換爲字符串並通過+連接。

+0

我收到以下錯誤...'CONCAT'不是公認的內置函數名稱。我目前使用的是sql server 2008 – user2974995

+0

請參閱底部的註釋,您必須在每個字段中使用CAST(fieldname AS VARCHAR(25))。 –

+0

感謝這工作完美 – user2974995