日期:2014-05-17  浏览次数:20429 次

求sql语句,分组,合并!!!
数据表结构如下:



想要的效果为:

R_PC_P_TYPE R_PC_p_USERNAME R_PC_P_USER
1 总工程师1,总工程师2 zgcs01,zgcs02
2 02所行政,03所工会 8,9
.
.
.
.
.
 

------解决方案--------------------
SQL code
SELECT  a.R_PC_P_TYPE ,
         STUFF(( SELECT  ',' + R_PC_p_USERNAME
                 FROM    tb b
                 WHERE   b.R_PC_p_USERNAME = a.R_PC_p_USERNAME
               FOR
                 XML PATH('')
               ), 1, 1, '') 'R_PC_p_USERNAME ' ,
         STUFF(( SELECT  ',' + R_PC_P_USER
                 FROM    tb c
                 WHERE   c.R_PC_P_USER = a.R_PC_P_USER
               FOR
                 XML PATH('')
               ), 1, 1, '') 'R_PC_P_USER'
 FROM    tb a
 GROUP BY a.R_PC_P_TYPE

------解决方案--------------------
SQL code


select R_PC_P_TYPE , R_PC_p_USERNAME = stuff((select ',' + R_PC_p_USERNAME from 数据表名称 t where R_PC_P_TYPE = tests.R_PC_P_TYPE for XML path('')) , 1 , 1 , ''), R_PC_P_USER= stuff((select ',' + R_PC_P_USER from 数据表名称 t where R_PC_P_TYPE = tests.R_PC_P_TYPE for XML path('')) , 1 , 1 , '')
from 数据表名称
group by R_PC_P_TYPE

------解决方案--------------------
又慢了一步
------解决方案--------------------

------解决方案--------------------
探讨
引用:

SQL code


select R_PC_P_TYPE , R_PC_p_USERNAME = stuff((select ',' + R_PC_p_USERNAME from 数据表名称 t where R_PC_P_TYPE = tests.R_PC_P_TYPE for XML path('')) , 1 , 1 , ''), R_PC_P_USER=……