2013-03-07 4 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

당신이 사용하고있는 쿼리? 이 데이터는 어디에 사용됩니까? –

+4

이곳은 여러 번 물었습니다. [sql-server] 및 [group-concat] 태그로 빠른 검색을 수행하십시오. – Lamak

답변

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]