34,587
社区成员
发帖
与我相关
我的任务
分享
create table #tb(level1 varchar(10),level2 varchar(10),rate numeric(12,2))
insert into #tb
select 'C2L','C1F',10
union all select 'C2L','C2F',90
union all select 'C3F','C3F',100
union all select 'X1F','X2F',20
union all select 'X1L','X2F',80
union all select 'X2F','X2F',90
union all select 'X2F','CC4F',10
union all select 'C3F','CC4F',15
union all select 'C3L','CC4F',32
union all select 'C3F','CC3F',85
union all select 'C3L','CC3F',68
union all select 'X1F','CC3F',80
union all select 'X1L','CC3F',20
declare @sql varchar(8000)
set @sql=''
select @sql=@sql + ',['+rtrim(level2)+']=cast(isnull(sum(case level2 when '''+rtrim(level2)+''' then rate end),0) as varchar)+''%'''
from #tb group by level2
exec('select level1'+@sql+',sum(rate) as 总计 from #tb group by level1 UNION ALL select ''总计'' as 总计'+@sql+',sum(rate) from #tb ' )
drop table #tb
你给的数据好象有问题?