海南婚纱摄影哪个最好:数据库查询问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/28 16:35:48
第一个表:s(sno,sname) --学号,学生姓名
第二个表:c(cno,cname,ctecher) --课程号,课程名,认课老师
第三个表:sc(sno,cno,scgrade) --学号,课程号,课程分数

1.列出有2门以上(含2门)不及格课程的学生姓名及其平均成绩
2.列出'1'号课程比'2'好课程成绩高的所有学生及其'1'号课和'2'号课的成绩
请写出查询语句。
guoci3906 朋友 你的语句执行不了啊 提示错误是:单行子查询返回多于一个行 我的数据库是oracle9i

1
在Sc表中找出成绩<60并切分组后>=2的Sno ---- 在S表中查出对应的Sname ----再在Sc表中查处对应的Sno的平均成绩:

select Sname,Avg(SCgrade) from S,SC where s.sno=sc.sno and s.sno in (select Sno from sc where scgrade<60 group by sno having count(*)>=2) group by s.sno;

2
SC表找出1号课程成绩 (cno=1) ---- SC表找出2号课程成绩 (cno=2) --- 比较后得到对应的Sno

select a.sno,a.scgrade,b.scgrade from (select sno,scgrade from sc where cno=1) as a,(select sno,scgrade from sc where cno=2) as b where a.sno=b.sno and a.scgrade>b.scgrade;

注释:我用的是mysql 调试通过, 查询结果正确 。 你试试!!

-------------------------有事发我消息-------------------

在问以下oracle9i 哪里下载? 注册要花钱吗?

忘记了 又没有书在旁边

是写SQL语句么?看样子挺复杂的哦

1
select a.sno,(select avg(scgrade) from sc b where b.sno=a.sno) from s a where a.sno=(select sno from sc where scgrade<60 group by sno having count(*)>=2 )
2
不太明白你的意思