Coalesce表Sql server

时间:2015-10-21 19:44:51

标签: sql-server

我需要一些帮助,在我的数据库中我有很多对很多的关系,所以我创建了一个aux表来建立1对多的关系,表是下一个。

offices           request        request_x_offices
-------          ---------       ------------------ 
id               id              id_request
office_name      name            id_office

所以,当我对request_x_offices进行查询时,我会得到一些像下一个

request_x_offices
-----------------
id_request| id_office
-----------------
1   1
1   2
1   3
1   4
1   5 
2   1
2   2 
2   3    etc...

在我联系后用办公室名称替换offices_id后我得到了下一个

id_request|office_name
-----------------
1 | office_name1
1 | office_name2
1 | office_name3
2 | office_name1
2 | office_name3
2 | office_name5

但我希望得到类似下一个的东西。

------
id_request|office_name
1 |office_name1, office_name2, office_name3
2 |office_name1, office_name3, office_name5

我尝试了一个合并,但我只得到一行所有id的所有office_name :(

任何帮助都将不胜感激,谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

试试这个:

SELECT p1.ID,
       ( SELECT NAME + ' and ' 
           FROM YourTable  p2
          WHERE p2.ID = p1.ID
          ORDER BY NAME
            FOR XML PATH('') ) AS Name,
        sum(Amount)
      FROM YourTable p1
      GROUP BY ID ;