Sql語句之查詢所有學生所有科目分數及總分


    昨天練Sql語句,數據庫建了四個表分別是,學生表,課程表,成績表以及教師表(教師表不在討論范圍),突然想到以前高中時代老師手上的那張成績表,然后我就尋思着能不能用Sql語句把表打印出來,以下是我的思考過程:

話不多說,先上三張表的圖

如下圖1.1學生表(Student表)

S#-學號 Sname-姓名 Sage-年齡 Ssex-性別

                       

                                                         圖1.1 Student表

如下圖1.2課程表(Course表)

C#-課程號 Cname-課程名 T#-教師號

                   

                                        圖1.2課程表 Course表

如下圖1.3成績表(CS表)

S#-學生號 C#-課程號 score-成績

                  

                                   圖 1.3課程表Course表

首先,我初步查詢了所有人所有科目成績

Sql語句如下:

查詢結果如下:

成績是打印出來了,可是有點不好看,重復的數據太多了,於是繼續尋思精簡一點的。

如果要精簡,那么學科就不能是Cname了,而是將一個個學科打出來,就像成績單,各科成績名和列名在同一列,於是乎我想到了case then else end

sql語句如下:

然而結果並沒有Group by,結果如下:

想來想去我就用表的聯結join,然后成功了。

sql語句如下:

結果如下:

哦!忘記排名了:

重寫sql如下:

結果如下:

另外有幾科目成績沒有加進來,所以總分有些加了不夠。

差不多就是這樣了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM