sql查询命令,急急急!!各位高手们帮帮忙吧!!

S(SNO,SNAME,SAGE,SSEX)学生(学号,姓名,年龄,性别)
SC(SNO,CNO,GRADE)选修(学号,课程号,成绩)
C(CNO,CNAME,TEACHER)课程(课程号,课程名,授课教师);以上是数据库的三张表,有几道怎么改也没输出完整的正确结果的,来求助一下,拜托帮帮忙啊!
1、统计每门课程的学生选修人数(统计10人以上的课程),要求输出课程号、课程名称、选修人数,按人数降序排列,如果人数相同,按课程号升序排列
2、求年龄大于女生平均年龄的男生姓名和年龄
3、检索S中每门课程成绩都大于等于80分的学生学号、姓名、性别,并把结果存入另一个已存在的表S2(sno,sname,ssex)中,这个我把成绩大于80分的学生都输出来了,但题目要求好像是输出的学生所选的课程必须都达到80分,我的那个结果貌似是只要有一门达到了80分就给输出来了,怎么也不知道怎么改了。。。
4、修改SC表C4课程成绩,若小于等于75提高5%,否则提高4%。。。。

大家帮帮忙吧!!

1、统计每门课程的学生选修人数(统计10人以上的课程),要求输出课程号、课程名称、选修人数,
按人数降序排列,如果人数相同,按课程号升序排列
SELECT C.CNO, C.CNAME, COUNT(SC.SNO)
FROM C LEFT JOIN SC
ON C.CNO = SC.CNO
GROUP BY C.CNO,C.CNAME
HAVING COUNT(SNO) > 10
ORDER BY COUNT(SC.SNO) DESC, C.CNO ASC

2、求年龄大于女生平均年龄的男生姓名和年龄
SELECT SNAME, SAGE
FROM S
WHERE SAGE > (SELECT AVG(SAGE) FROM S WHERE SSEX = '女')

3、检索S中每门课程成绩都大于等于80分的学生学号、姓名、性别,并把结果存入另一个已存在的表S2(sno,sname,ssex)中,
这个我把成绩大于80分的学生都输出来了,但题目要求好像是输出的学生所选的课程必须都达到80分,
我的那个结果貌似是只要有一门达到了80分就给输出来了,怎么也不知道怎么改了。。。
求所有大于80分的
SELECT SNO, SNAME, SSEX
FROM S
WHERE NOT EXISTS (SELECT 1 FROM SC WHERE SNO = S.SNO AND GRADE < 80)

完整的就是
INSERT INTO S2(sno, sname, ssex)
SELECT SNO, SNAME, SSEX
FROM S
WHERE NOT EXISTS (SELECT 1 FROM SC WHERE SNO = S.SNO AND GRADE < 80)

4、修改SC表C4课程成绩,若小于等于75提高5%,否则提高4%。。。。
UPDATE SC SET GRADE = GRADE + GRADE (CASE WHEN GRADE <= 7 THEN 4% ELSE 5% END)
WHERE CNO = 'C4'追问

最后一个查询分析器显示“在关键字 'ELSE' 附近有语法错误。”还有其实这条语句的格式我不太懂,我们课本上没有case这样的语句,学的东西果然还是太浅了。。。
非常非常崇拜头脑聪明又有技术的前辈们!希望以后还能多多向您求助!嘿嘿!!

温馨提示:答案为网友推荐,仅供参考
相似回答