Sử dụng câu lệnh này để nhận được tất cả điểm của học sinh trong bài kiểm tra của bạn.
SELECT sq.stdid, sq.testid, COUNT(*) AS correctAnswers,
SUM(q.marks) AS studentScore, (SELECT SUM(marks) FROM question
WHERE testid=$_REQUEST['testid']) AS totalScore
FROM question q, studentquestion sq
WHERE sq.testid=$_REQUEST['testid'] AND q.testid = sq.testid
AND q.qnid = sq.qnid AND sq.answered = 'answered'
AND q.correctanswer = sq.stdanswer GROUP BY sq.stdid;
Bạn có thể tạo một biến PHP để tính tỷ lệ phần trăm. Ví dụ:
$scorePercentage = $r3['studentScore'] / $r3['totalScore'] * 100;
hoặc
$scorePercentage = $r3['studentScore'] .'/'. $r3['totalScore'];
// Output: echo $scorePercentage;
60
60/100
Sử dụng câu lệnh SQL này để nhận được ScorePercentage ngay bây giờ:
SELECT sq.stdid, sq.testid, COUNT(*) AS correctAnswers,
(SUM(q.marks) / (SELECT SUM(marks) FROM question WHERE testid=1) * 100)
AS studentScorePercentage FROM question q, studentquestion sq
WHERE sq.testid=$_REQUEST['testid'] AND q.testid = sq.testid AND q.qnid = sq.qnid
AND sq.answered = 'answered' AND q.correctanswer = sq.stdanswer
GROUP BY sq.stdid;
SQLFiddle với các kết quả trên tại đây: http://sqlfiddle.com/#!9/8d47c/10