在access中怎么写sql查询语句,select查询出一个有不同班级同学成绩(很多班级)的表中,每个班级的前3名的学号姓名成绩?请详细解答
由于SQL语言处理问题的方式是面向记录"集合"的。解决排名这类问题对于SQL来说确实头疼,分组排名就更不用说了! 为了解决排名问题大型数据库系统为用户提供了RANK、ROWNUMBER等函数,但是ACCESS不支持排名、开窗等这类函数,一般建议用编程方式解决,例如VBA等。
这个问题确实不好回答。看到楼主就同一问题已经提问几次了,今天尝试用SQL解决如下,供参考
首先假设数据结构如下:
students(sid,name,class)
scores(sid,score)
学生表与分数表基于sid建立一对多参照完整性
检索出所有班级与每个学生的学号、姓名、分数按班级、得分排序
检索出每个班级前三名的学生学号、姓名和得分,按班级升序、得分降序排名
实现SQL代码
select a.class,a.sid,a.name,a.score from运行结果
从上述代码来看实现这样的效果已经很麻烦,至于学生班名次,ACCESS只能借助编程手段了。
就是问查询代码怎么写…………