首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求教一个sql有关问题

2012-01-29 
求教一个sql问题有一张StudentAchievement表StudentIDCourseIDAchievement(成绩)统计并显示每门课程的课程

求教一个sql问题
有一张StudentAchievement表
StudentID   CourseID   Achievement(成绩)

统计并显示每门课程的课程编、课程总分和课程平均分,并满足课程平均分80分以上的
我编了这样一条语句,
select   sum(Achievement),   avg(Achievement)   as   avgScore,courseid   from   StudentAchievement   where   avgScore> 80   group   by   courseid  
但显示avgScore无效,请教有什么好方法?


[解决办法]
select sum(Achievement), avg(Achievement) as avgScore,courseid from StudentAchievement group by courseid having(avg(Achievement))> 80

[解决办法]
select CourseID , sum(Achievement) 课程总分, avg(Achievement) 课程平均分
from StudentAchievement
group by CourseID
having (avg(Achievement)) > = 80
[解决办法]
select sum(Achievement), avg(Achievement) as avgScore,courseid from StudentAchievement group by courseid having avg(Achievement)> 80

[解决办法]
where 后面不能使用聚合函数:sum、avg、max、min、count,需要使用having 代替where
注意:having 必须放到sql语句的最后面

热点排行