2013-03-07 50 views
0

一次付款可以有多張發票,因此查詢表或結果集可能會返回多行。將多張發票組合在一起

我該如何解決這個問題?

Customer Name Payment no Invoice No 
------------- ---------- ----------  
Dave A   1   10 
Dave T   2   10 
Dave T   2   12 

所以我想:

Customer Name Payment no Invoice No 
------------- ---------- ----------  
Dave A   1   10 
Dave T   2   10, 12 
+0

您使用何種查詢?這些數據將在哪裏使用? – 2013-03-07 15:15:30

+4

這在這裏已經被問過很多次了。使用標籤[sql-server]和[group-concat]快速搜索 – Lamak 2013-03-07 15:16:02

回答

3
SELECT 
    [Customer Name], [Payment no], 
    STUFF(
     (SELECT ',' + CAST([Invoice No] AS VARCHAR(10)) 
      FROM TableName 
      WHERE [Customer Name] = a.[Customer Name] AND 
       [Payment no] = A.[Payment no] 
      FOR XML PATH ('')) 
      , 1, 1, '') AS InvoiceList 
FROM TableName AS a 
GROUP BY [Customer Name], [Payment no]