如何多组统计!
表t
id sex school government area
-----------------------------------------
*** 男 中学 团员 北京
*** 男 大学 党员 上海
*** 女 小学 群众 北京
*** 女 中学 群众 天津
*** 男 小学 党员 上海
*** 女 大学 团员 北京
-------------------------------------------
用一条sql语句输出如下结果(不能用创建表插入数据的形式)
学校 团员 党员 群众
----------- -----------
大学 1 1 0
小学 0 1 1
中学 1 0 1
------解决方案-------------------- select 学校=school,
团员=sum(case when government= '团员 ' then 1 else 0 end),
党员=sum(case when government= '党员 ' then 1 else 0 end),
群众=sum(case when government= '群众 ' then 1 else 0 end)
from 表t
group by school
------解决方案--------------------select school 学校,
sum(case when government = '团员 ' then 1 else 0 end) 团员,
sum(case when government = '党员 ' then 1 else 0 end) 党员,
sum(case when government = '群众 ' then 1 else 0 end) 群众
from t
group by school
------解决方案--------------------declare @sql varchar(8000)
set @sql = 'select school 学校 '
select @sql = @sql + ' , sum(case government when ' ' ' + government + ' ' ' then Result end) [ ' + government + '] '
from (select distinct government from t) as a
set @sql = @sql + ' from t group by school '
exec(@sql)
------解决方案--------------------create table 表t(id varchar(10),sex varchar(10),school varchar(10),gov