嘿家伙,我有一个SQL语句,用于获取不同活动类型(家庭作业,测验等)的等级,如果该类型的下降最低,则会下降,否则它仍然存在。错误如下以及SQL代码。总和的平均值减最小值
SELECT Student.firstName, Student.lastName, 'Grades' =
CASE
WHEN Grades.activityType = 'Homework' THEN
CASE WHEN Policy.drop_hw = 1 THEN
(AVG(SUM(Grades.grade) - MIN(Grades.grade))) * (Policy.homework/100)
ELSE
(AVG(Grades.grade) * (Policy.homework/100))
END
END, Course.courseNum, Course.sectNum, Grades.activityType
FROM ...
下面是我得到的错误:
- Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
- Column 'Policy.drop_hw' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
这是一个很好的观点。我没有想到这一点。如果没有总数,我该如何平均总和和最小值? – OneSneakyMofo 2010-12-02 20:43:57
你想做什么?我不明白你想要计算什么。 SUM-MIN有什么意义? – 2010-12-02 20:57:43