Create table S(S_NO Varchar2(20) primary key,S_Name Varchar2(20) Not Null,S_Sex Char(2),S_Birth Date);Create table C(C_NO Varchar2(10) primary key,C_Name Varchar2(10) Not Null, C_Gradit numeric Not Null);Create table SC(S_NO Varchar2(20),C_NO Varchar2(10),Score numeric,primary key(S_No,C_No) );建立这样的三张表  插入记录之后
怎么求总分最高的同学的姓名和成绩?(用Oracle的SQL语句)S_NO      是学号
S_Name    姓名
S_Sex     性别
S_Birth   出生日期
 
C_NO      课程号  
C_Name    课程名
C_Gredit  学分
 
S_NO      学号
C_NO      课程号
Score     成绩

解决方案 »

  1.   

    select s.s_Name,max(t.s_sumScore) from s ,
    (select s_no,sum(Score)  as sumScore from SC group by s_no) t
    where s.s_no = t.s_no
      

  2.   

    select s.s_no, s.s_name, max(sc.score) as “总分” from SC, S where s.s_no = sc.s_no group by sc.s_no;
      

  3.   

    select s.s_no, s.s_name, max(sum(sc.score)) as “总分” from SC, S where s.s_no = sc.s_no group by sc.s_no;
      

  4.   

    select s.*,sc0.total from 
    (
     select s_no, sum(score) as total from SC group by s_no order by total desc
    ) sc0 , s
    where sc0.s_no=s.s_no(+) and rownum=1
      

  5.   

    支持楼上的,用MAX老是报错。
      

  6.   

    只有4楼的能够得到结果,不过我还没看明白。另外 如果要显示 “总分”字样  不用引号的 而且SQL里好象都用的单引号。