首页 新闻 会员 周边 捐助

sqlserver 多行拼接

0
悬赏园豆:20 [已解决问题] 解决于 2017-01-17 15:16

表结构如下:

A表: 

B表

B表TaskId作为外键关联A表TaskId

想要实现如下查询结果:

请教大神这个应该怎么查询,有什么参考没?

晓月圆舞的主页 晓月圆舞 | 初学一级 | 园豆:142
提问于:2017-01-17 12:05
< >
分享
最佳答案
1

select S.taskid,S.taskcode,LEFT(S.username,LEN(S.username)-1) from (
select A.taskid,A.taskcode,
(select B.username+',' from B where B.taskid=A.taskid for xml path('')) username
from A
group by A.taskid,A.taskcode
) S

收获园豆:18
忧虑的心 | 初学一级 |园豆:73 | 2017-01-17 14:20
其他回答(3)
0

select TaskId,TaskCode,wm_connect(UserName) over (partion by TaskID) from A ,B where A.TaskID= B.TaskID;

,主要查询 sql 的统计类的相关函数。

_herbert | 园豆:211 (菜鸟二级) | 2017-01-17 12:45

wm_connect和partion查询语句报有语法错误

支持(0) 反对(0) 晓月圆舞 | 园豆:142 (初学一级) | 2017-01-17 13:40
1

百度 FOR XML PATH

收获园豆:2
西风古道 | 园豆:274 (菜鸟二级) | 2017-01-17 13:40
0

WITH -- 造数
A AS
(
SELECT TaskId ,TaskCode,UserName FROM (
SELECT 'BB1' as TaskCode ,1 as TaskId ,'李克勤' as UserName union
SELECT 'BB2',2,'黎明' union
SELECT 'BB3',2,'刘德华' union
SELECT 'BB4',2,'王杰' ) A
)
-- TaskId, UserName
SELECT TaskId,
(SELECT UserName+','
FROM A
FOR XML PATH ('')) AS UserList
FROM A
GROUP BY TaskId

X.Jan | 园豆:202 (菜鸟二级) | 2017-01-17 15:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册