vlambda博客
学习文章列表

No.4 MySQL实战演练之“分类统计报表”

本期任务:通过编写代码,来设计一个符合实际工作需要的分类统计报表。


想要实现的统计报表,如下图:


一、通过MySQL的可视化工具Navicat premium,新建查询或创建存储过程来实现。具体步骤:打开Navicat--选择指定数据库--点击查询--右键单击,选择“新建查询”--编写以下代码:


select bumen as 部门,
count (*) as 人数,
 
null as 性别,
count ( case sex when ' ' then ' ' else null end ) as  ,
count ( case sex when ' ' then ' ' else null end ) as ,
 
null as 学历,
count ( case xueli when ' 研究生 ' then ' 研究生 ' else  null end ) as 研究生,
count ( case xueli when ' 本科 ' then ' 本科 ' else null end ) as 本科,
count ( case xueli when ' 大专 ' then ' 大专 ' else null end ) as 大专,
count ( case xueli when ' 高中 ' then ' 高中 ' else null end ) as 高中,
count ( case xueli when ' 中专 ' then ' 中专 ' else null end ) as 中专,
 
null as 职称,
count ( case when zhicheng like ' 正高级% ' or zhicheng like ' 研究员级高级% ' then ' 正高级 ' else null end ) as 正高,
count ( casewhen zhicheng like ' 高级% ' then ' 高级 ' else null end ) as 副高,
count ( case when zhicheng like  '__ ' then ' 中级 ' else null end ) as 中级,
count ( case when zhicheng like ' 助理% ' then ' 初级 ' else null end ) as 初级,
count ( case when zhicheng is null then ' 无职称 ' else  null end) as 无职称,
 
null as 政治面貌,
count(case when zzmm like ' 中共%党员 ' then ' 中共党员 ' else  null end ) as 中共党员,
count(case when zzmm like ' 九三学社 ' then ' 九三学社 ' else null end) as 九三学社
 
from hmc group by bumen with rollup ;
end
 
二、通过命令窗口或者MySQL创建一个存储过程procedure(无参),在过程体begin...end中编写代码(以命令窗口编写为例)。

step1:win+R键启动
step2:输入cmd,点击确定-
step3:输入mysql –uroot –p,输入密码
step4:use huamingce 跳转到指定数据库下
step5:定义分界符:delimiter //
step6:创建不带参数的存储过程 create procedure tjbb() 
step7:begin....end,开始过程体,并在过程体中输入或者粘贴上主体代码(主题代码详见上面Navicat中查询中编写的代码)。
..............................
step8://


三、调用存储过程

call p_name();       #如果存储过程是有参数的,需要带上参数。如果无参,则不用带参数。


四、查看已建好的存储过程

show procedure status;   #查看所有的存储过程

show procedure status where db = ‘db_name’ ;   #查看指定数据库名下的存储过程