跪求大神帮帮忙!!!有一个【学生选修课】数据库,数据库中包括三个表,学生表,课程表,成绩表

有一个学生数据库,有以下关系模式构成:学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,学分)成绩表(学号,课程名,学分)根据下面的要求编写对应的sql语句。1.根据年龄由高到低,同龄的按学号由低到高列出每个学生的学号、姓名、性别、年龄、所在系。2.请写出查询姓名重复的学生的sql语句。结果集包括:学生编号、学生姓名。3.将选修课程号为1(CNO=1)的课程的成绩置为0。4.请查询出学号为1(SNO=1)的学生的选修课成绩表。结果集包括:课程号、课程名称、成绩、该学生针对该课程成绩排名/该课程参考总人数

//自己把中文替换成英文字段名 我用的sql server数据库
select 学号、姓名、性别、年龄、所在系 from 学生 order by 年龄 desc, 学号 asc
select 学号,姓名 from 学生 where 姓名 in( select 姓名 from 学生 group by 姓名 having count(*)>1 )
update 成绩 set 成绩=0 where CNO=1
如果/不是除法的话 只是字符串 (除法暂时有问题)下班了 明天再来写
select C.课程号,D.课程名,D.成绩 from COURSE C,(
select CONVERT(VARCHAR(50),A.排名)+'/'+CONVERT(VARCHAR(50),B.ZS) as '排名/人数',a.学号,a.课程名,a.成绩 FROM (
select ROW_NUMBER() over(partition BY 课程名 order by 成绩 desc) as 排名 ,* from GRADE where 学号='1') A,
(SELECT COUNT(*) as zs,课程名
FROM GRADE group by 课程名 ) B where a.课程名=b.课程名) D WHERE C.课程名=D.课程名
温馨提示:答案为网友推荐,仅供参考
相似回答