目录
源数据表
编号 | 姓名 | 班级 | 科目 | 得分 |
1 | 卓婷 | 1班 | 语文 | 70 |
2 | 卓婷 | 1班 | 数学 | 67 |
3 | 卓婷 | 1班 | 英语 | 89 |
4 | 张洁萍 | 2班 | 数学 | 86 |
5 | 张洁萍 | 2班 | 语文 | 70 |
6 | 张洁萍 | 2班 | 英语 | 90 |
7 | 张嘉文 | 2班 | 语文 | 55 |
8 | 张嘉文 | 2班 | 数学 | 65 |
9 | 张嘉文 | 2班 | 英语 | 40 |
10 | 吴银 | 1班 | 数学 | 95 |
11 | 吴银 | 1班 | 语文 | 83 |
12 | 吴银 | 1班 | 英语 | 98 |
13 | 吴星宝 | 1班 | 语文 | 77 |
14 | 吴星宝 | 1班 | 数学 | 86 |
15 | 吴星宝 | 1班 | 英语 | 56 |
16 | 谭仪敏 | 2班 | 数学 | 75 |
17 | 谭仪敏 | 2班 | 语文 | 90 |
18 | 谭仪敏 | 2班 | 英语 | 87 |
19 | 谭荣锋 | 1班 | 语文 | 45 |
20 | 谭荣锋 | 1班 | 数学 | 60 |
21 | 谭荣锋 | 1班 | 英语 | 56 |
22 | 谭国鹏 | 2班 | 数学 | 90 |
23 | 谭国鹏 | 2班 | 语文 | 89 |
24 | 谭国鹏 | 2班 | 英语 | 98 |
25 | 覃应颜 | 2班 | 语文 | 67 |
26 | 覃应颜 | 2班 | 数学 | 80 |
27 | 覃应颜 | 2班 | 英语 | 78 |
28 | 石强 | 1班 | 数学 | 55 |
29 | 石强 | 1班 | 语文 | 85 |
30 | 石强 | 1班 | 英语 | 90 |
31 | 沈金源 | 1班 | 语文 | 86 |
32 | 沈金源 | 1班 | 数学 | 87 |
33 | 沈金源 | 1班 | 英语 | 68 |
34 | 彭政华 | 1班 | 数学 | 90 |
35 | 彭政华 | 1班 | 英语 | 55 |
36 | 彭政华 | 1班 | 语文 | 69 |
某年级各班的期末考试成绩表如图所示.每个学生的语文、数学、英语各有一条记录,如何把每个学生的班级、总成绩、语文、数学、英语成绩只在一条记录中显示出来?
解决方案
TRANSFORM SUM(得分) AS 得分
SELECT 姓名,班级,SUM(得分) AS 总得分
FROM [sheet1$]
GROUP BY 姓名,班级
PIVOT 科目
TRANSFORM的交叉表及GROUP BY子句汇总求和
首先根据姓名、班级、得分使用GROUP BY子句进行分组汇总生成行字段,然后通过TRANSFORM语句创建交叉表查询,对得分进行总计,最后按照两类信息对结果进行分组,SELECT语句生成的结果数据分布在数据表的左侧,“科目”分布在数据表的顶端。