问个SQL语句的写法

Xuon 2008-03-08 02:44:52
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 成绩




...全文
57 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Xuon 2008-03-08
  • 打赏
  • 举报
回复
只有4楼的能够得到结果,不过我还没看明白。

另外 如果要显示 “总分”字样 不用引号的 而且SQL里好象都用的单引号。
代码摆渡人 2008-03-08
  • 打赏
  • 举报
回复
支持楼上的,用MAX老是报错。
fosjos 2008-03-08
  • 打赏
  • 举报
回复
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
代码摆渡人 2008-03-08
  • 打赏
  • 举报
回复
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;
代码摆渡人 2008-03-08
  • 打赏
  • 举报
回复
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;
shi97521601 2008-03-08
  • 打赏
  • 举报
回复
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

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧