mysql各科成绩相加更新总分_Sql语句之查询所有学生所有科目分数及总分

昨天练Sql语句,数据库建了四个表分别是,学生表,课程表,成绩表以及教师表(教师表不在讨论范围),突然想到以前高中时代老师手上的那张成绩表,然后我就寻思着能不能用Sql语句把表打印出来,以下是我的思考过程:

话不多说,先上三张表的图

如下图1.1学生表(Student表)

S#-学号 Sname-姓名 Sage-年龄 Ssex-性别

768d5d88ace3012271c7d5509505e602.png

图1.1 Student表

如下图1.2课程表(Course表)

C#-课程号 Cname-课程名 T#-教师号

e718bd8a950db593b39882e825a1a56e.png

图1.2课程表 Course表

如下图1.3成绩表(CS表)

S#-学生号 C#-课程号 score-成绩

0a3495ff755b28402b8db4cc9427d46a.png

图 1.3课程表Course表

首先,我初步查询了所有人所有科目成绩

Sql语句如下:

9162652a736ce192611c7b571270b0f3.png

查询结果如下:

c268d8f944aecc0700d5bf42391a70dd.png

成绩是打印出来了,可是有点不好看,重复的数据太多了,于是继续寻思精简一点的。

如果要精简,那么学科就不能是Cname了,而是将一个个学科打出来,就像成绩单,各科成绩名和列名在同一列,于是乎我想到了case then else end

sql语句如下:

5ef81ff22ad2424e77e817bdc3d29349.png

然而结果并没有Group by,结果如下:

2b55c3930d97f47a56ffa8b831f40b74.png

想来想去我就用表的联结join,然后成功了。

sql语句如下:

bf5ed7cf22d4e4ca8ce2b985359e0eb1.png

结果如下:

0f66f832c59149f6616c417ee1c7d2ea.png

哦!忘记排名了:

重写sql如下:

29ae8a8835c891c3da246a7f0abd10cc.png

结果如下:

a05f02d29baffbd016ba8c16fe6af050.png

另外有几科目成绩没有加进来,所以总分有些加了不够。

差不多就是这样了。

  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值