已知关系模式:
S (SNO,SNAME)                       学生关系。SNO 为学号,SNAME 为姓名
C (CNO,CNAME,CTEACHER)  课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE)        选课关系。SCGRADE 为成绩
 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号???????
 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩????????

解决方案 »

  1.   

      --1、查询"001"课程比"002"课程成绩高的所有学生的学号;
      select a.S# from (select s#,score from SC where C#='001') a,(select s#,score 
      from SC where C#='002') b 
      where a.score>b.score and a.s#=b.s#; 
    更多详见:
    http://blog.csdn.net/maco_wang/archive/2011/03/27/6281484.aspx
      

  2.   

    select a.stud_id from (select stud_id,grade from stud_grade where course_id='0401010103') a,(select stud_id,grade 
      from stud_grade where course_id='0401010104') b 
      where a.grade>b.grade and a.stud_id=b.stud_id
      

  3.   

    SELECT SC1.stud_id,SC1.SGRADE,SC2.SGRADE
    FROM SC SC1,SC SC2
    WHERE SC1.CNO='1'
    AND SC2.CNO='2'
    AND SC1.SGRADE>SC2.GRADE
    AND SC1.SNO=SC2.SNO
      

  4.   

    --列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号???????
    select a.sno from sc a ,sc b 
    where a.sno=b.sno and a.cno='1' and b.cno='2' and a.SCGRADE>b.SCGRADE
    ----列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号???????
    select a.sno,a.SCGRADE,b.SCGRADE from sc a ,sc b 
    where a.sno=b.sno and a.cno='1' and b.cno='2' and a.SCGRADE>b.SCGRADE