create table tb
(
   学生    varchar(10) ,
   学校 varchar(10) ,
   服务项目  VARCHAR(10)
)
insert into tb(学生 , 学校 , 服务项目) values('A' , '001' , '0001')
insert into tb(学生 , 学校 , 服务项目) values('B' , '002' , '0002')
insert into tb(学生 , 学校 , 服务项目) values('C' , '001' , '0001')
godeclare @sql varchar(8000)
set @sql = 'select 服务项目 '' '' '
select @sql = @sql + ' , sum(case 学校 when ''' + 学校 + ''' then 1 else 0 end) [' + 学校 + ']'
from (select distinct 学校 from tb) as a
set @sql = @sql + ' from tb group by 服务项目'
exec(@sql) GO
drop table tb/*  结果        001         002         
---------- ----------- ----------- 
0001       2           0
0002       0           1*/