access怎么写sql( 二 )


这个问题确实不好回答 。看到楼主就同一问题已经提问几次了,今天尝试用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怎么写sql】从上述代码来看实现这样的效果已经很麻烦,至于学生班名次,ACCESS只能借助编程手段了 。