在access中怎么写sql查询语句,select查询出一个有不同班级同学成绩(很多班级)的表中,

在access中怎么写sql查询语句,select查询出一个有不同班级同学成绩(很多班级)的表中,每个班级的前3名的学号姓名成绩?请详细解答... 在access中怎么写sql查询语句,select查询出一个有不同班级同学成绩(很多班级)的表中,每个班级的前3名的学号姓名成绩?请详细解答 展开
 我来答
tjrmgs
2015-11-28 · TA获得超过5765个赞
知道大有可为答主
回答量:2161
采纳率:94%
帮助的人:1048万
展开全部

由于SQL语言处理问题的方式是面向记录"集合"的。解决排名这类问题对于SQL来说确实头疼,分组排名就更不用说了! 为了解决排名问题大型数据库系统为用户提供了RANK、ROWNUMBER等函数,但是ACCESS不支持排名、开窗等这类函数,一般建议用编程方式解决,例如VBA等。


这个问题确实不好回答。看到楼主就同一问题已经提问几次了,今天尝试用SQL解决如下,供参考


首先假设数据结构如下:

students(sid,name,class)

scores(sid,score)

学生表与分数表基于sid建立一对多参照完整性


检索出所有班级与每个学生的学号、姓名、分数按班级、得分排序

select a.class,b.sid,a.name,b.score from
students a,scores b where a.sid=b.sid 
order by a.class,b.score desc;


检索出每个班级前三名的学生学号、姓名和得分,按班级升序、得分降序排名

实现SQL代码

select a.class,a.sid,a.name,a.score from 
(select a.class,a.name,b.sid,b.score from students a,scores b where a.sid=b.sid)a where a.score in(
select top 3 b.score from (select distinct class,score from scores)b 
where b.class=a.class  order by b.score desc
) order by a.class,a.score desc;

运行结果

从上述代码来看实现这样的效果已经很麻烦,至于学生班名次,ACCESS只能借助编程手段了。

揭戈雅s2
2015-11-27 · TA获得超过514个赞
知道小有建树答主
回答量:8621
采纳率:0%
帮助的人:2328万
展开全部
access查询帮实现
追问
就是问查询代码怎么写…………
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式