假设数据库里有这么一张表
学号 姓名 性别 政治面貌 学历 所属省份
201 XX 男 党员 专科 四川
202 XX 女 党员 专科 河南
203 XX 男 团员 专科 河南
204 XX 男 党员 本科 河北
205 XX 男 团员 本科 山东
206 XX 女 民主党员 专科 湖南
207 XX 女 党员 专科 江西
208 XX 女 团员 本科 四川
...........
...........
当用户在选择“所属省份”字段中的 四川 和 河南 做为纵向字段
“政治面貌”字段中的 团员 和 民主党员 做为横向字段
时候会得出下面的表:
名称 团员 民主党员 合计
四川 XX XX XXX
河南 XX XX XXX
合计 XXX XXX XXX
这样能用一句SQL语句实现吗?
学号 姓名 性别 政治面貌 学历 所属省份
201 XX 男 党员 专科 四川
202 XX 女 党员 专科 河南
203 XX 男 团员 专科 河南
204 XX 男 党员 本科 河北
205 XX 男 团员 本科 山东
206 XX 女 民主党员 专科 湖南
207 XX 女 党员 专科 江西
208 XX 女 团员 本科 四川
...........
...........
当用户在选择“所属省份”字段中的 四川 和 河南 做为纵向字段
“政治面貌”字段中的 团员 和 民主党员 做为横向字段
时候会得出下面的表:
名称 团员 民主党员 合计
四川 XX XX XXX
河南 XX XX XXX
合计 XXX XXX XXX
这样能用一句SQL语句实现吗?
用ssas,代码简单,但关键是你要会用bi
sum(case when 政治面貌='团员' then 1 else 0 end) as 团员,
sum(case when 政治面貌='民主党员' then 1 else 0 end as 民主党员,
sum(1) as 合计,
from tb group by 所属省份 with rollup
group by 所属省份 ;这样的话 会把所有省份的都统计出来做为纵向字段,
但是程序只需要统计用户选择的省份,如我的例子里只选择 四川 和 河南,其他的省份不用管;
能不能实现?望赐教!!!!