SELECT 学生.学号,学生,姓名,
CASE WHEN SUM(选课.成绩)>85 THEN '好'
WHEN SUM(选课.成绩)BETWEEN 71 AND 85 THEN '较好'
WHEN SUM(选课.成绩)BETWEEN 60 AND 70 THEN '一般'
WHEN SUM(选课.成绩)<60 THEN '较差'
END AS 学习情况
FROM 学生
INNER JOIN 选课 ON 学生.学号 = 选课.学号
INNER JOIN 课程 ON 课程.课程号 = 选课.课程号
GROUP BY 学生.学号,学生,姓名
CASE WHEN SUM(选课.成绩)>85 THEN '好'
WHEN SUM(选课.成绩)BETWEEN 71 AND 85 THEN '较好'
WHEN SUM(选课.成绩)BETWEEN 60 AND 70 THEN '一般'
WHEN SUM(选课.成绩)<60 THEN '较差'
END AS 学习情况
FROM 学生
INNER JOIN 选课 ON 学生.学号 = 选课.学号
INNER JOIN 课程 ON 课程.课程号 = 选课.课程号
GROUP BY 学生.学号,学生,姓名
解决方案 »
- 为什么对时间进行比较不成功呢
- 模糊查询后字段内容相同的只显示一个结果
- 请教,SQL查询后,排序推荐的内容在前面,不推荐的在后面.急!!!!!!!
- 安全性里 认证模式为灰色 怎么办?
- 请问这句如何写
- sql2000有个大表本机运行查询需要3秒,网络需要30秒,保存也是
- 如何优化该SQL语句
- 我怎么在SQL脚本里面ADD一个新的字段到指定字段前面???谢谢大家帮忙!
- 我想查询每张卡最后三次的记录请问语句应该怎样写?
- 面试考题:关于建立自动运行的存储过程,并让这个存储过程自动建立两个触发器的问题!
- 能不能给一个查询结果加上唯一的标识ID?
- 请问sql 2000安装 window 2003 有什么要求?sp需要吗?
服务器: 消息 156,级别 15,状态 1,行 2
在关键字 'CASE' 附近有语法错误。还有:SELECT 学生.学号,学生,姓名,----应该为:SELECT 学生.学号,学生.姓名吧???
GROUP BY 学生.学号,学生,姓名----应该为:GROUP BY 学生.学号,学生.姓名???
case
when 平均成绩 >=85 then '好'
when 平均成绩 >=70 and 平均成绩<85 then '较好'
when 平均成绩 >=60 and 平均成绩<70 then '一般'
when 平均成绩 <60 then '较差'
end 学习情况 from (
select a.学号,b.姓名,avg(a.成绩) as 平均成绩
from 选课 a left join 学生 a on a.学号=b.学号
group by a.学号,b.姓名
)
case
when 平均成绩 >=85 then '好'
when 平均成绩 >=70 and 平均成绩<85 then '较好'
when 平均成绩 >=60 and 平均成绩<70 then '一般'
when 平均成绩 <60 then '较差'
end 学习情况 from (
select a.学号,b.姓名,avg(a.成绩) as 平均成绩
from 选课 a left join 学生 a on a.学号=b.学号
group by a.学号,b.姓名
) cc
但还是有小小错误:
服务器: 消息 1011,级别 15,状态 1,行 9
在 FROM 子句中多次指定了相关名称 'a'。
case
when 平均成绩 >=85 then '好'
when 平均成绩 >=70 and 平均成绩<85 then '较好'
when 平均成绩 >=60 and 平均成绩<70 then '一般'
when 平均成绩 <60 then '较差'
end 学习情况 from (
select a.学号,b.姓名,avg(a.成绩) as 平均成绩
from 选课 a left join 学生 b on a.学号=b.学号
group by a.学号,b.姓名
) cc
select 学号,姓名,
case
when 平均成绩 >=85 then '好'
when 平均成绩 >=70 and 平均成绩<85 then '较好'
when 平均成绩 >=60 and 平均成绩<70 then '一般'
when 平均成绩 <60 then '较差'
end 学习情况 from (
select a.学号,b.姓名,avg(a.成绩) as 平均成绩
from 选课 a left join 学生 b on a.学号=b.学号
group by a.学号,b.姓名
) c
select 学号,姓名,
case
when 平均成绩 >=85 then '好'
when 平均成绩 >=70 and 平均成绩<85 then '较好'
when 平均成绩 >=60 and 平均成绩<70 then '一般'
when 平均成绩 <60 then '较差'
end 学习情况 from (
select a.学号,b.姓名,avg(a.成绩) as 平均成绩
from 选课 a left join 学生 b on a.学号=b.学号
group by a.学号,b.姓名
) c
order by 学号