需要SQL Query来以所需格式合并来自两个表的数据

时间:2013-07-31 06:27:10

标签: sql sql-server-2008

我有一个表格,其中包含ClientID的2列clientDetails及其关联的BranchCode在不同的列中。 我需要一个表格,该表格中包含此表中不同分支的表格。所有与此分支相关联的clientid在另一列中与','分开。 例如> 表1:

Branch | ClientIDs

B001   | CLI001

B001   | CLI002

B001   | CLI003

需要的结果:

Branch | ClientIDs

B001   | CLI001,CLI002,CLI003 

将这些数据作为记录计数的最佳优化方法可能是非常大的。  我需要这些列来绑定一个win形式的2个组合框。

的问候, 阿希什

2 个答案:

答案 0 :(得分:3)

您可能正在寻找Group_concat

SELECT BRANCH, 
       Group_concat(clientids) 
FROM   TABLE 
GROUP  BY BRANCH; 

Fiddle

答案 1 :(得分:3)

在SQL Server 2008中,

SELECT BRANCH, 
       Stuff((SELECT ',' + CLIENTIDS 
              FROM   CLIENTDETAILS a 
              WHERE  a.BRANCH = t.BRANCH 
              FOR xml path('')), 1, 1, '') AS ClientId 
FROM   CLIENTDETAILS t 
GROUP  BY BRANCH 

SQL Fiddle Demo