补充一点:请尽量用少的sql语句完成,如可以最好是一条。谢谢。

解决方案 »

  1.   

    select t2.name ,count(examid),count(decode(sign(to_number(grade)-90),-1,null))   
      from  t1.t2 
     where t1.studentid=t2.studentid(+);
      

  2.   

    select t2.name ,count(t1.examid),
           count(decode(sign(to_number(t1.grade)-90),-1,null))   
      from  t1﹐t2 
     where t1.studentid=t2.studentid(+);
    思想就是這樣啦﹐decode函數得方法記得不時很明確﹐自己查查﹐我現在手上沒書。
      

  3.   

    select b.studentid,b.name,count(a.studentid) 考试的次数,count(decode(sign(to_number(a.grade)-90),1,null)) 优秀的次数 from 表1 a,表2 b where a.studentid(+)=b.studentid group by b.studentid,b.name