作者:绿色风
分类:
时间:2022-08-17
浏览:185
楼主 wise |
Q:如何用SQL语句提取每个学生最高成绩的记录? 如图是工作表
A:可以借用SQL语句来实现这个功能。具体语句是:
- select * from [Sheet1$] where 姓名&"-"&考试成绩 in (select 姓名&"-"&考试成绩 from (select 姓名,max(考试成绩) as 考试成绩 from [Sheet1$] group by 姓名))
结果如图显示:
|
2楼 aley |
我是一样的问题,但是把这些代码放在Access中怎么不对呢? |
3楼 wise |
改一下表名就可以了。 因为Access里面的命名和Excel有点差异的 |
4楼 apolloh |
用in,还用了多个子查询,这样效率较低,建议修改为:
- select a.* from [Sheet1$] as a,(select 姓名,max(考试成绩) as 考试成绩 from [Sheet1$] group by 姓名) as b where a.姓名=b.姓名 and a.考试成绩=b.考试成绩
|
5楼 donghan |
学习了,谢谢楼主 |
6楼 pzhds |
谢谢分享 |
7楼 yzniker |
楼主,你好!按照你的代码或是4楼的代码都出现以下错误
“在查询定义的SELECT列表中,别名‘考试成绩’循环引用。
请问怎么解决,谢谢啊 |
8楼 海洋之星 |
又学习了,谢谢分享 |
9楼 yfan17 |
小7的SQL语句总是那么出彩。 |
10楼 wjc2090742 |
第一个sql帖子是抄本帖的,迟到的评分。 |
11楼 水星钓鱼 |
今天刚学了一个也可以实现- select * from [Sheet1$] no1
- where 成绩=(select max(成绩) from [Sheet1$] no2 where no1.姓名=no2.姓名)
|
12楼 wz8856443 |
因为我是菜鸟,有编译好的附件就更好了 |
13楼 海洋之星 |
我觉得这个只需要用max和group by ,不需要用嵌套,如果用嵌套查询速度会不会更慢,能看看版主的数据源吗? |
14楼 卢子 |
感觉好像没必要写的那么麻烦,个人观点,不一定正确- select 姓名,max(成绩) as 最大值 from [sheet2$] group by 姓名
效果.gif
|
15楼 wcymiss |
只有姓名与成绩当然不需要嵌套。现在还有个日期呢 |
16楼 LOGO |
- select * from [Sheet1$] where dcount("1","sheet1$","姓名='"&姓名&"' and 考试成绩>"&考试成绩)=0
|
17楼 UOY |
a |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一