student(sid, sname)
course(cid, cname)
sc(sid, cid, grade)1 查 1号课成绩 高于 自己2号课成绩的学生名字 及他们的1号课成绩 2号课成绩
2 查 两门及多于两门课不及格的同学名字 及其各门课的平均成绩

解决方案 »

  1.   

    没有写出来,单纯的sql写不出来吧,
    是不是要用到pl/sql
      

  2.   

    select sname,sum(grade1) grade1,sum(grade2) grade2
    from 
     (  select sname,decode(t2.cid,1,grade,0) grade1,decode(t2.cid,2,grade,0) grade2
         from student t1,course t2,sc t3
        where t1.sid=t3.sid and t2.cid=t3.cid and (t2.cid='1' or t2.cid='2'))
    group by sname
    having sum(grade1)>sum(grade2)这是第一个..第二个再想想
      

  3.   

    select sname,avg(grade) avg_grade
      ( select sname,grade,decode(sign(grade-60),-1,1,0) cnt
         from student t1,course t2,sc t3
        where t1.sid=t3.sid and t2.cid=t3.cid)
    group by sname
    having sum(cnt) >=2第二个
      

  4.   

    既然题目给了sid,那么group by应该都用sid,而不是sname,如果有同名的同学,那么就不能这么做了