SQL-考试各科目的成绩以及各科目的参与考试次数

查询学生各科目的成绩:(统计每个科目的考试成绩)

科目表:

ID: int 主键自增

course:varchar   len:20

成绩表:

ID  int 主键自增

NAME:varchar   len:20

SCORE int

COURSE_ID int 外键关联科目表的ID

其中外键关联 科目表的ID 与成绩表的COURSE_ID;

sql如下

SELECT t_score.NAME 姓名 ,
SUM(CASE t_course.course WHEN '数学' THEN t_score.SCORE ELSE 0 END) AS 数学,
SUM(CASE t_course.course WHEN '语文' THEN t_score.SCORE ELSE 0 END) AS 语文
FROM t_course,t_score
WHERE t_score.COURSE_ID=t_course.ID
GROUP BY 姓名;

查询结果:

查询学生各科目考试次数:(统计每个科目考试的次数)

成绩表多了几条数据:如下

字段定义如上

查询Sql如下:

SELECT t_score.NAME 姓名 ,
COUNT(CASE t_course.course WHEN '语文' THEN t_score.SCORE ELSE NULL END) AS 语文,
COUNT(CASE t_course.course WHEN '数学' THEN t_score.SCORE ELSE NULL END) AS 数学
FROM t_course,t_score
WHERE t_score.COURSE_ID=t_course.ID
GROUP BY 姓名;

查询结果:

原文地址:https://www.cnblogs.com/miss3316/p/8550172.html