1. 程式人生 > >SQL-考試各科目的成績以及各科目的參與考試次數

SQL-考試各科目的成績以及各科目的參與考試次數

int nbsp cor .com img group com case select

查詢學生各科目的成績:(統計每個科目的考試成績)

科目表:

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 姓名;

查詢結果:

技術分享圖片

SQL-考試各科目的成績以及各科目的參與考試次數