的Sql通过和字符串连接
问题描述:
组选定的,我有这样的的Sql通过和字符串连接
ID NAME Amount
1 cal 100
2 cal 200
3 cal 300
4 cal 400
1 ser 500
2 ser 600
5 ser 700
表我想写一个选择查询,这样我西港岛线得到这样
ID NAME Amount
1 cal and ser 600
2 cal and ser 800
3 cal 300
4 cal 400
5 ser 700
在这里,我需要的resul按ID和总金额和concat字符串名称相同的ID和不同的名称
答
这将与sql-server 2008一起使用
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 ;
答
SELECT id, GROUP_CONCAT(DISTINCT name SEPARATOR ' and ') AS name, SUM(amount) AS amount
FROM mytable
GROUP BY id
答
SELECT p1.ID,
STUFF((SELECT ' and ' + NAME
FROM YourTable p2
WHERE p2.ID = p1.ID
ORDER BY NAME
FOR XML PATH(''))
, 1, 5, '') AS Name,
sum(Amount)
FROM YourTable p1
GROUP BY ID
从维克拉姆答案
我添加stuff我的结果。
对不起,但我找不到在sql server中的GROUP_CONCAT ..我想这在sql server 2008 r2 – 2012-04-10 06:54:46
啊,对不起 - 这是MySQL。我没有阅读标签。 – Amadan 2012-04-10 07:14:01