题目

题目要求

模板要求


处理数据集

通过分析题目,发现需要四个数据集,分别是:
- 班级成绩汇总表
- 班级成绩明细表
- 各科平均成绩对比
- 男女生平均成绩对比

班级成绩汇总表

班级成绩汇总表数据来源于STSCORE表,无参数影响,可以直接查询,以班级为分组,对总成绩汇总求和。

1
2
3
4
SELECT s.CLASSNO,SUM(s.GRADE) AS GRADE
FROM STSCORE s
WHERE 1 = 1
GROUP BY s.CLASSNO

班级成绩明细表

班级成绩明细表数据来源于STSCORE表,存在联动,需要参数classno来过滤结果。
表中性别字段实际值为F/M,在明细表展示时需要做一下处理。将F判断为女,其余为男。

1
2
3
4
5
SELECT s.*,
CASE s.SEX WHEN 'F' THEN '女' ElSE '男' END SEX_CN
FROM STSCORE s
WHERE 1 = 1
${if(len(classno)==0,"","AND s.classno ='"+classno+"'")}

各科平均成绩对比

班级成绩明细表数据来源于STSCORE表,存在联动,需要参数classno来过滤结果。
以科目为分组,对总成绩汇总平均。同时处理性别字段的显示值。

1
2
3
4
5
6
SELECT s.COURSE COURSE 
,round(avg(s.GRADE),2) GRADE
FROM STSCORE s
WHERE 1 = 1
${if(len(classno)==0,"","AND s.classno ='"+classno+"'")}
GROUP BY s.COURSE

男女生平均成绩对比

班级成绩明细表数据来源于STSCORE表,存在联动,需要参数classno来过滤结果。
以性别为分组,对总成绩汇总平均。同时处理性别字段的显示值。

1
2
3
4
5
6
SELECT CASE s.SEX WHEN 'F' THEN '女' ElSE '男' END SEX 
,round(avg(s.GRADE),2) GRADE
FROM STSCORE s
WHERE 1 = 1
${if(len(classno)==0,"","AND s.classno ='"+classno+"'")}
GROUP BY s.SEX

主表设计

成绩汇总饼图

插入图表-饼图

设置数据
- 数据集:班级成绩汇总表
- 分类:无
- 系列名:classno
- 值:grade
设置样式
- 标题-文本:’各班级成绩汇总’
- 标签:启动标签
- 系列
- 渐变风格:开
- 配色方案:新特性
设置特效
- 交互属性-添加连接-动态参数:classno为系列名称

男女生平均成绩柱状图

插入图表-柱状图

设置数据
- 数据集:男女生平均成绩对比
- 分类:SEX
- 系列名:无
- 值:GRADE

设置样式
- 标题-文本:=$classno+’男女生平均成绩对比’
其他略

各科平均成绩条形图

插入图表-条形图

设置数据
- 数据集:各科平均成绩对比
- 分类:COURSE
- 系列名:无
- 值:GRADE

设置样式
- 标题-文本:=$classno+’各科平均成绩对比’
其他略

学生成绩明细表

表体:

班级 学号 姓名 性别 明细表.COURSE
明细表.CLASSNO 明细表.STUDENTNO 明细表.NAME 明细表.SEX_CN 明细表.GRADE

如图:

其中明细表.COURSE 扩展方式为横向扩展。

整体列宽调整为35

表头背景为深蓝色,字体为白色、微软雅黑、12号,全黑色边框

表体字体为黑色、微软雅黑、10号,全黑色边框

学号、姓名、性别和明细表.COURSE设置条件属性,添加条件-背景-选择淡蓝色-设置公式为rwo()%2==0

明细表.GRADE设置条件属性,添加条件-字体-选择微软雅黑/加粗/10号/红色-设置条件为 小于60

结果展示