在MySql中,我需要在termid=10
的一所學校的每個班級中選擇頂級學生,以獲得下一學期入學的折扣。Mysql最好的學生在學校的每一堂課
請注意,總不是表(我將在下面的清理問題)
我對所有學生該工作簿表工作簿:
id studentid classid exam1 exam2 total termid
1 2 11 20 40 60 10
2 1 22 40 20 60 10
3 4 11 40 20 60 10
4 5 33 10 60 70 10
5 7 22 10 40 50 10
6 8 11 10 30 40 10
7 9 33 20 45 65 10
8 11 11 null null null 10
9 12 54 null null null 02
10 13 58 null null null 02
一號面臨的挑戰是:exam1
和exam2
是VARCHAR
和總數不在表中(如我所解釋的)。
第二個挑戰是:可能是兩個學生具有頂級水平,使他們必須在結果是:你可以在id=8
性病#11有沒有數字
3日挑戰是看到。
我需要的結果爲:
id studentid classid exam1 exam2 total termid
1 2 11 20 40 60 10
3 4 11 40 20 60 10
4 5 33 10 60 70 10
2 1 22 40 20 60 10
我有這樣的查詢,但無法正常工作好,我提。
SELECT DISTINCT id,studentid,classid,exam1,exam2,total,termid ,(CAST(exam1 AS DECIMAL(9,2))+CAST(exam2 AS DECIMAL(9,2))) FROM workbook WHERE ClassId = '10';
該死的,打字速度太慢;-)戈登幹得好,如果價值爲零,合併也會返回零。 – Fuzzzzel 2014-12-13 11:00:23
如果我想只有termid = '10'的結果,我必須要做什麼? – 2014-12-13 13:48:38
Yhou必須在兩個WHERE子句中添加「AND termid = 10」/「AND s1.termid = 10」。通過這種方式,最大值僅根據第10項計算,也只有第10項的學生加入。 – Fuzzzzel 2014-12-13 14:54:32