declare @ table (序号 int, 姓名 varchar(20), 身份 varchar(50))
insert into @ values(1, '王', '干部')
insert into @ values(2, '李', '干部')
insert into @ values(3, '赵', '工人')
insert into @ values(4, '赵', '领导')
select count(身份) as 数量,身份 into temp from @ group by 身份
declare @sql varchar(8000)
set @sql = 'select '
select @sql = @sql + ',sum(case 身份 when '''+身份+''' then 数量 else 0 end) as '+身份
from (select distinct 身份 from temp) as a
select @sql='select '+right(@sql,len(@sql)-8)
select @sql = @sql+' from temp '
exec(@sql)
declare @ table (序号 int, 姓名 varchar(20), 身份 varchar(50))
insert into @ values(1, '王', '干部')
insert into @ values(2, '李', '干部')
insert into @ values(3, '赵', '工人')
insert into @ values(4, '赵', '领导')
select count(身份) as 数量,身份 into temp from @ group by 身份
declare @sql varchar(8000)
set @sql = 'select 1 '
select @sql = @sql + ',sum(case 身份 when '''+身份+''' then 数量 else 0 end) as '+身份
from (select distinct 身份 from temp) as a
select @sql = @sql+' from temp '
exec(@sql)