不知咋描述,算是行列转换?
表s
sindex sname
s1 张三
s2 李四
表t
tindex tname
t1 他是谁
t2 不认识
表sc
sindex tindex
s1 t2
s1 t1
s2 t1
现在想的到一个类似于如下结构的结果
sindex sname tindexs tnames
s1 张三 t1,t2 他是谁,不认识
s2 李四 t1 他是谁
直接用sql能实现么咋弄啊,注意所有的index是变动的,不会是固定t1 t2 s1 s2这样的
谢谢
[解决办法]
;
WITH huang
AS ( SELECT s.sindex ,
sname ,
t.tindex ,
t.tname
FROM S
INNER JOIN sc ON s.sindex = sc.sindex
INNER JOIN t ON sc.tindex = t.tindex
)
SELECT a.sindex ,
a.sname ,
STUFF(( SELECT ',' + tindex
FROM huang b
WHERE b.sindex = a.sindex
AND b.sname = a.sname
FOR
XML PATH('')
), 1, 1, '') 'tindexs' ,
STUFF(( SELECT ',' + tname
FROM huang b
WHERE b.sindex = a.sindex
AND b.sname = a.sname
FOR
XML PATH('')
), 1, 1, '') 'tnames'
FROM huang a
GROUP BY a.sindex ,
a.sname