分别在SQL Server2000和Access中用SQL语句进行如下操作 急!!!

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:13:02
有三张表:学生表S、课程表C、成绩表SC
1. 查询操作:
查询成绩表中选课学生学号、选课门数;
查询成绩表中选课门数超过一门的学生学号;
查询选修001、002、003号课程的学生学号、成绩并按学号升序排列,学号相同者按成绩降序排列;
查询成绩为100分的学生姓名、年龄;
查询同时选修了001、002号课程的学生学号、姓名、性别;
查询所有选课学生的学号、姓名、课程名、成绩;
查询所有学生的学号、姓名、课程名、成绩;
使用子查询:
查询“张三”同学的学号、课程名称及成绩;
查询考试成绩比张三的某一门成绩高的学生学号、姓名、性别;
查询考试成绩均比张三的考试成绩高的学生学号、姓名、课程名及成绩;
查询所有没有选修课程的学生学号、姓名;
查询选修了所有课程的学生学号、姓名;
把学分数为2.5的课程的考试成绩修改为原成绩的0.95倍;
2. 在ACCESS中用SQL语句执行上述所有操作

请高手们帮忙做一下上面的题目(写出详细的SQL语句),急用!非常感谢!
回答正确的可以追加悬赏分
学生表S(Sno,Sname,Sage,Ssex)
成绩表SC(Sno,Cno,Grade)
课程表C(Cno,Cname,Cmark,Cdate)

不让我修改了
只能重新注册一个继续
--2.5 0.95倍
update sc
set Grade=Grade*0.95
where
cno in(select cno from c where cmark=2.5)
--选修了所有课程
select
sno,sname
from
s
where
sno in(
select
sno
from
sc
group by sno
having count(distinct cno)=(select count(distinct cno) from c))

有什么不满足你要求的提出来 我再改 大家共同学习

------回答(sql2000的)--------
--学号 门数
select Sno,count(distinct Cno) as num from SC group by Sno
--超过一门
select Sno from SC group by Sno having count(distinct Cno)>1
--1 2 3 成绩排序
select Sno,Grade from SC where Cno in ('001','002','003') order by Sno,Grade desc
--100分
select S.Sno,S.Sname from S,SC
where S.Sno=SC.Sno and SC.Grade=100
--001 002
select S.Sname,S.Sage from S,SC A,SC B where S.Sno=A.Sno and S.Sno=B.Sno and A.Cno='001' and B.Cno='002'
--选课学生
select S.Sno,S.