
--或者
select Sname,score from (
select Sname,score,row_number() over(partition by ScSno order by score Desc) As Rkfrom Student ,Scwhere StudentSno=ScSno
) S where rk=1假设有以下表:课程表Course( CourseID int, --课程ID CourseName varchar(20)--课程名)学生表Student( StudentID int,--学生ID Name varchar(20),--学生名 sex int--性别,0是女,1是男)学生成绩表StudentScore( StudentID int,--学生ID CourseID int,--课程ID Score int--分数) -- 课程为英语的男生女生中的最高分和最低分select
case when sex=0 then '女' else '男' end as 性别,
max(Score) as 最高分,min(Score) as 最低分,
from StudentScore a,Student b,Course c
where aStudentID=bStudentID and aCourseID=cCourseID
and cCourseName='英语'
group by sex 结果类似下面的。---------------------------------------------最高分 最低分 性别95 65 男90 60 女 如果有什么不懂的,请追问如果只是查询数据库原理这么课的最高分的话,
可以这样:Select max(sc[score]) as 最高分 from sc where Cname in(Select Cname from Course where Cname='数据库原理')
也不知道行不行,很久没有写过了!!你试试吧!希望可以帮到您!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)