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

我想把表分组统计到行里面(如图)
本帖最后由 chenfeng_cstp 于 2013-03-14 15:08:04 编辑
原始数据:
表头1  2    3
A     A1   Q1
A     B1   Q1 
B     C1   Q2
C     D1   Q5
C     E2   Q4
C     F2   Q5

显示的结果是放在一行
A:A1(Q1),B1(Q1)
B:C1(Q2)
C:D1(Q5),E2(Q4),F2(Q5)
SQL? MSSQL 实用

------解决方案--------------------
with tb(col1,col2,col3)
as(
select 'A','A1','Q1' union all
select 'A','B1','Q1 ' union all
select 'B','C1','Q2' union all
select 'C','D1','Q5' union all
select 'C','E2','Q4' union all
select 'C','F2','Q5'
)
select col1+':'+stuff((select ','+col2+'('+col3+')' from tb b where a.col1=b.col1 for xml path('')),1,1,'') from tb a group by col1