อันดับที่ของคะแนนที่สอบได้
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 313   3
URL.หัวข้อ / URL
อันดับที่ของคะแนนที่สอบได้

เมื่อเรียงตามเลขที่ เมื่อเรียงตามคะแนน
เลขที่ คะแนน | เลขที่ คะแนน สอบได้ที่ (เป็นField ที่อยากได้)
1 78 | 4 88 1
2 64 | 6 82 2
3 55 | 5 79 3
4 88 | 1 78 4
5 79 | 8 78 4
6 82 | 9 69 6
7 64 | 2 64 7
8 78 | 7 64 7
9 69 | 10 56 9
10 56 | 3 55 10

คือต้องการให้คนที่สอบได้คะแนนมากที่สุดได้ที่ 1 ถัดมาคนได้คะแนนรองลงมาสอบได้ที่ 2 , 3
**แต่**คนที่ได้คะแนนซ้ำกันคือคะแนน 78 คะแนนจะต้องได้ที่ 4 ทั้ง 2 คน ถัดมาจึงเป็นที่ 6
และเป็นเช่นนี้ไปเรื่อยดังตัวอย่างข้างบน


จะมีวิธีทำยังไงบ้างครับ?

3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R05164
ลองใช้ Subquery ช่วยครับ

สมมติว่า ตารางเป้าหมายชื่อ tblScores มี 2 ฟีลด์คือ ID และ Scores เป็น Number ทั้งคู่ จะได้

SELECT tblScores.ID, tblScores.Scores,
(Select Count([Scores])
from tblScores as Temp
Where Temp.Scores >= tblScores.Scores)
AS Rank
FROM tblScores
ORDER BY tblScores.Scores DESC;
2 @R05165
แบบนี้จะได้อย่างที่ต้องการครับ

SELECT tblScores.ID, tblScores.Scores,
(Select Count([Scores])
from tblScores as Temp
Where Temp.Scores > tblScores.Scores)+1 AS Rank
FROM tblScores
ORDER BY tblScores.Scores DESC;
3 @R05166
จะลองนำไปใช้ดูครับ
ขอบคุณมากเลยครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.1379s