2013-03-07 86 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]