mam*_*esh 14 sql sql-server sql-server-2005 aggregate-functions sql-server-group-concat
我有以下查询:
SELECT
Account,
Unit,
SUM(state_fee),
Code
FROM tblMta
WHERE MTA.Id = '123'
GROUP BY Account,Unit
Run Code Online (Sandbox Code Playgroud)
这当然会引发异常,因为代码不在group by条款中.每个state_fee都有一个代码.如何将此代码显示在1条记录中(每个state_fee 1个代码,即每个单元的多个state_fee)作为逗号分隔列表?我在这里查看了不同的解决方案,但我找不到任何有用的解决方案group by.
Adr*_*iro 23
你想使用FOR XML PATH构造:
SELECT ACCOUNT,
unit,
SUM(state_fee),
Stuff((SELECT ', ' + code
FROM tblmta t2
WHERE t2.ACCOUNT = t1.ACCOUNT
AND t2.unit = t1.unit
AND t2.id = '123'
FOR XML PATH('')), 1, 2, '') [Codes]
FROM tblmta t1
WHERE t1.id = '123'
GROUP BY ACCOUNT,
unit
Run Code Online (Sandbox Code Playgroud)
请参阅此处的其他示例
| 归档时间: |
|
| 查看次数: |
27341 次 |
| 最近记录: |