某班有30名学生,以上是他们的考试成绩。每个学生有5门功课
Name(姓名) Lesson(课程) Mark(分数)
Tome         EngLish          90
Link         Music(音乐)  80
Saket         Math(数学)  70
…….             ……..          …….
…….             ……..          ……..
。写出查询语句:
1.查询(Mark〈60)的学生姓名?
2.查询成绩有不及格的学生姓名?
3.查询所有科目都不及格的学生姓名?
4.查询(Mark)排在前三的学生姓名?
5.查询总成绩排在前三的学生姓名?
6.查询总成绩最高的学生姓名及总成绩?

解决方案 »

  1.   

    这个随便翻本SQL基础的书,花上10分钟就能学会怎么写了
    除非你小学没毕业
      

  2.   

    他说的是基础问题,大家就帮一下,同时也算是温习一下知识,共同进步 祝所有的朋友牛年牛气冲天1 select name from [TableName] where ='60'
    2 select name from [TableName] where FieldName1<'60' or FieldName2<'60' or ....
    3 select name from [TableName] where FieldName1<'60' and FieldName2<'60' and ...
    4 select name from [TableName] where rownum=3 order by Mark desc  
    5 select FieldName1+FieldName2+FieldName3 as 总成绩,Name From [TableName] where rownum=3 order by 总成绩
    5 select MAX(FieldName1+FieldName2+FieldName3),Name From [TableName]  order by 总成绩
      

  3.   

    4楼的答案实在是看清楼主的表结构再写
    楼主是否写错了,因为第一题和第二题应该是一样的啊
    难道不及格不是成绩小于60即分数小于60的
    1.select distinct name from tablename where <60
    2.同1
    3.select distinct name from tablename where name not in (select name from tablename where >=60)
    4.没法写,是每科前三吗?
    5.select name from (select rownum rn,name,sum() ttl from tablename group by name order by ttl,name) where rn<=3
    6.select name,ttl from (select rownum rn,name,sum() ttl from tablename group by name order by ttl,name) where rn=1ttl就是总成绩