!!!有一张成绩表(姓名)(班级)(成绩)三个字段,要求写个sql语句选择出不同班级的成绩前三名的学生的信息

Dicky81 2006-02-24 10:12:33
有一张成绩表(姓名)(班级)(成绩)三个字段,要求写个sql语句选择出不同班级的成绩前三名的学生的信息
...全文
1905 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumingxiaodi 2006-02-25
  • 打赏
  • 举报
回复
select a.* from 成绩表 a
where not exists(select 1 from 成绩表 b where a.班级=b.班级 and b.成绩>a.成绩
group by b.班级 having count(1)>=3)
order by 班级,成绩 desc

已测试通过,注意如果同一班有多人成绩相同且成绩值在前三名内则这些人都会包含在结果集中.
haonanernet 2006-02-25
  • 打赏
  • 举报
回复
(1)select 姓名,班级,成绩 from 表 a where (select COUNT(1) FROM 表 where 班级=a.班级 and 姓名>a.姓名)<=2
(2)select 姓名,班级,成绩 from 表 a where 姓名 in(select top 3 姓名 from 表 where 班级=a.班级 order by 成绩 desc)
(3)select 姓名,班级,成绩 from 表 a where not exsits(select 1 from 表 where 班级=a.班级 and 成绩>a.成绩 HAVING count(*)>=3)
hbzy123 2006-02-24
  • 打赏
  • 举报
回复
select count(*) from uds_class where classparentid in (select * from #classid)

drop table #classid
最后一句写错了
应该是
select * from uds_class where classparentid in (select * from #classid)
,
具体内容你换成你自己的吧
hbzy123 2006-02-24
  • 打赏
  • 举报
回复
create table uds_Class
(
classid int, --学生ID
classparentid int, --班级ID
mark int --分数
)

declare @classid varchar(1000)
create table #classid(ids int)

set @classid=''
select @classid=@classid+convert(varchar,a.classparentid)+','
from(select distinct classparentid from uds_Class where classparentid<>-1) a

select @classid
select substring(@classid,charindex(',',@classid)+1,len(@classid))
declare @tempid int

while len(@classid)>0
begin
set @tempid =convert(int,substring(@classid,1,charindex(',',@classid)-1))
set @classid=substring(@classid,charindex(',',@classid)+1,len(@classid))
insert into #classid
select top 3 classid
from uds_Class
where ClassParentID=@tempid
end
select count(*) from uds_class where classparentid in (select * from #classid)

drop table #classid
singlepine 2006-02-24
  • 打赏
  • 举报
回复
select top 3 姓名,班级,成绩 from tablename group by 姓名,班级,成绩 order by 成绩 desc
课程内容主要讲解如下几点:1:如何使用navaicat导入sql2:如何设置网站的的数据库账号等,如何使用iis发布网站3:演示后台管理功能、前台用户功能 该系统主要分网站管理员、班主任、任课老师、学生这几个角色网站管理员学校设置学校概要:设置学校简介、学校机构、学校领导、校园风景、联系我们分院设置:录入分院信息、分院列表、分院信息修改和删除 广告和留言       首页轮播图设置:支持上传轮播图;       留言列表:用户的所有留言信息、支持删除 老师中心       录入老师:选择分院,老师账号,老师姓名、qq、邮箱、手机、头像、简介和详细介绍等。       老师管理:查看所有老师列表,支持修改和删除。 课程中心录入课程:课程名称、是否必修、学分、简介、封面、详情课程管理:查看所有课程列表,支持修改和删除。 宿舍管理       宿舍楼管理:支持录入,查看列表,支持修改、删除       寝室录入:选择宿舍楼,录入寝室标题       寝室管理:查看寝室名称,所属宿舍楼,支持修改和删除教室管理       教学楼管理:支持录入,查看列表,支持修改、删除       教室录入:选择教学楼,录入教室标题       教室管理:查看教室名称,所属宿舍楼,支持修改和删除 班级管理       录入班级选择分院,选择班主任,填写班级编码,班级简介,班级信息。       班级管理:查看所有班级信息,支持修改和删除。班级排课       第1步:选择要排课的班级,点击“1-去排课”;在排课中心,选择对应时间和课程,保存课程表。第2步:点击“2-安排老师”,给课程表中的课程选择上课老师第3步:点击“3-安排教室”,给课程表中的课程安排教室第4步:按1/2/3的步骤安排后,最终“课程表”就来了 资讯中心       添加资讯:类型、标题、资讯内容等       管理资讯:查看所有资讯列表;支持修改功能;支持删除功能       资讯浏览列表:所有用户的信息浏览记录;支持删除功能。       信息收藏数据:所有注册用户的收藏资讯列表;支持删除功能。       信息评论列表:所有注册用户的用户评论列表;支持审核和删除功能。 任课/上课老师我的课表我的课程表:文字形式列,所有的课程表信息       我的课程表2:按图形表形式,列所有课程表信息 成绩主题管理       录入成绩主题:选择时间,录入成绩考试主题说明。       成绩主题管理:管理所有的考试成绩主题,支持修改和删除。(打分后请不要删除)       一个老师可能管理多个班级,录入成绩主题的时候,每个班级都会生成对应的数据成绩管理       在成绩管理中心列表,右侧,点击“录入考试分数”,进入打分页面,填写分数,填写备注(可以不填),然后“确认提交分数”。       在成绩管理中心列表,直接点击按钮“查看”,可以查看对应的考试分数一个老师可能管理多个班级,在列表会显示所有班级的列表 账号中心       修改个人资料:姓名、qq、邮箱、手机、简介、头像、介绍等       密码修改 学生功能用户登录       学生账号默认是学生的身份证号码,密码初始化是123456我的班级信息查看班级信息:所属分院、班级编号、班级简介、班级详情 我的课程表       查看课程表,包含了课程名称,上课时间,老师我的课程成绩       显示课程,和对应的课程里面包含的考试主题的分数和相关信息资讯浏览、收藏、评论信息管理当前会员资讯的浏览信息列表;资讯收藏列表,支持删除;评论列表用户信息维护自己的信息,包括:姓名、联系方式、邮箱、头像、简介、详细介绍等;支持修改功能密码修改和退登录密码修改:修改自己的密码退登录:清除登录的cookie、跳转到首页 班主任/辅导员班级管理       显示管理的班级列表,支持修改详细信息班级课程表       显示管理的班级的课程表学生管理       学生录入:选择分院,录入学号、姓名选择性别、录入身份证号码(当做账号),密码、邮箱、QQ、微信、选择寝室安排,学生简介,学生头像,学生介绍。       学生管理:查看学生列表,支持修改和删除。       主要是录入学生的身份证账号和密码,其他信息,由学生登录后自行维护。账号中心       修改个人资料:姓名、qq、邮箱、手机、简介、头像、介绍等       密码修改

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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