Reputation: 45
I want to calculate grades automatically from a SQL Server database with my query but I'm having a lot of errors. Any help?
This is what I've tried but it's error prone.
Student Asst1 Asst2 Exam
------- ------ ------ ------
John 12 22 38
Grade query in SQL:
SELECT
*,
(Asst1 + Asst2 + Exam) AS TotalMark,
(IF(TotalMark > 84.5, 'A', IF (TotalMark > 64.5, 'B',
IF(TotalMark > 49.5, 'C', IF (TotalMark > 29.5, 'D', 'E'))))) AS Grade
FROM Results
Something like that. (Although it is from memory and it didn't double-check syntax)
Upvotes: 0
Views: 24423
Reputation: 5225
Try this -
SELECT R.STUDENT, (Asst1+Asst2+Exam) AS TotalMark,
CASE WHEN (Asst1+Asst2+Exam) > 84.5
THEN 'A'
WHEN (Asst1+Asst2+Exam) < 84.5 AND (Asst1+Asst2+Exam) > 64.5
THEN 'B'
WHEN (Asst1+Asst2+Exam) < 64.5 AND (Asst1+Asst2+Exam) > 49.5
THEN 'C'
WHEN (Asst1+Asst2+Exam) < 49.5 AND (Asst1+Asst2+Exam) > 29.5
THEN 'D'
ELSE 'E'
END AS GRADE
FROM RESULTS R;
Upvotes: 3