首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询每人学生的各科成绩,总成绩,以及排名

2013-06-26 
查询每位学生的各科成绩,总成绩,以及排名Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表S

查询每位学生的各科成绩,总成绩,以及排名
Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
如何查询每位学生的各科成绩,总成绩,以及排名
[解决办法]
作业吧

create table Student(S# varchar(10),Sname varchar(10),Sage int,Ssex char(2)) 
create table Course(C# varchar(10),Cname varchar(10),T#  varchar(10)) 
create table SC(S# varchar(10),C# varchar(10),score int) 

insert into Student values ('S001','张三',15,'男')
insert into Student values ('S002','李四',16,'女')
insert into Student values ('S003','王五',15,'男')
insert into Student values ('S004','赵六',14,'女')

insert into Course values ('M','数学','T001')
insert into Course values ('C','语文','T002')


insert into SC values ('S001','M',78)
insert into SC values ('S001','C',98)
insert into SC values ('S002','M',98)
insert into SC values ('S002','C',79)
insert into SC values ('S003','M',67)
insert into SC values ('S003','C',89)
insert into SC values ('S004','M',66)
insert into SC values ('S004','C',88)



select T2.*,T1.* from
(
select A.S#,SUM(B.score) as 总分,Rank() over (order by sum(B.score) desc) as 总分排名
 from  Student A inner join SC B on A.S#=B.S# inner join Course C on B.C#=C.C#
group by A.S#
) T1,
(
select A.S#,A.Sname,C.Cname,B.score
 from  Student A inner join SC B on A.S#=B.S# inner join Course C on B.C#=C.C#
)T2
where T1.S#=T2.S# order by T1.总分 desc


S#         Sname      Cname      score       S#         总分          总分排名
---------- ---------- ---------- ----------- ---------- ----------- --------------------
S002       李四         数学         98          S002       177         1
S002       李四         语文         79          S002       177         1
S001       张三         数学         78          S001       176         2


S001       张三         语文         98          S001       176         2
S003       王五         数学         67          S003       156         3
S003       王五         语文         89          S003       156         3
S004       赵六         数学         66          S004       154         4
S004       赵六         语文         88          S004       154         4

(8 行受影响)



[解决办法]
http://blog.csdn.net/maco_wang/article/details/6281484

热点排行