如何用SQL计算学生成绩

时间:2014-04-18 06:22:11

标签: sql database sql-server-2008

我想用我的查询从SQL Server数据库自动计算成绩,但我有很多错误。有帮助吗?

这是我尝试过的,但它很容易出错。

Student   Asst1   Asst2   Exam
-------   ------   ------  ------
John          12         22        38

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

这样的事情。 (虽然它来自记忆,并没有仔细检查语法)

1 个答案:

答案 0 :(得分:1)

试试这个 -

 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;