设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: langtaoim
打印 上一主题 下一主题

[查询] 请教查询“汇总”group by的设置

[复制链接]

点击这里给我发消息

11#
 楼主| 发表于 2015-11-8 16:24:04 | 只看该作者
todaynew 发表于 2015-11-8 16:15
可以把几个需要的字段拖入查询设计视图,在日期字段下选逆序。然后切换到SQL设计视图中,在select后加一 ...

嗯,案例表其实已经被我大大简化,实际情况要复杂得多,我希望通过这个案例能理解背后的查询逻辑,看来我还是要学习一下sql查询才能明白。
12#
发表于 2015-11-8 16:27:35 | 只看该作者
langtaoim 发表于 2015-11-8 16:24
嗯,案例表其实已经被我大大简化,实际情况要复杂得多,我希望通过这个案例能理解背后的查询逻辑,看来我 ...

没什么好学的,呵呵。
通过查询视图和SQL视图的切换,一看就明白了。

点击这里给我发消息

13#
 楼主| 发表于 2015-11-8 16:33:32 | 只看该作者
todaynew 发表于 2015-11-8 16:27
没什么好学的,呵呵。
通过查询视图和SQL视图的切换,一看就明白了。

希望如此。。。。。

点击这里给我发消息

14#
 楼主| 发表于 2015-11-8 21:14:40 | 只看该作者
todaynew 发表于 2015-11-8 16:27
没什么好学的,呵呵。
通过查询视图和SQL视图的切换,一看就明白了。

麻烦了,希望继续请教一下:
表1:

查询设计视图:


查询SQL:
SELECT Max(表1.考试日期) AS 考试日期之最大值, 表1.科目, Last(表1.成绩) AS 成绩之Last
FROM 表1
GROUP BY 表1.科目;


运行结果:


问题:
我的意图是对科目进行分组(语文、数学),取最后的考试日期(1-6),然后希望得出对应的成绩(61分)。
可是“表1”中明明1月6日的语文成绩是61分,为何在查询结果中1月6日语文成绩为10分呢?为何会出现这种记录错行显示呢?系统到底是什么运算过程?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
15#
发表于 2015-11-9 09:05:20 | 只看该作者
因为“语文”对应的最后一个“成绩”是10。
如果要一一对应,就不能使用Last,应该用Dlookup:
Dlookup("成绩","表1","科目='"&[]&"' and 考试日期=#'&[考试日期]&"#"),注意:
---如果同一个日期,同一个科目有两个不同的成绩时,只返回第一条记录;
---如果同一个日期,同一个科目如果没有成绩时,会返回空值。

点击这里给我发消息

16#
 楼主| 发表于 2015-11-9 10:04:13 | 只看该作者
roych 发表于 2015-11-9 09:05
因为“语文”对应的最后一个“成绩”是10。
如果要一一对应,就不能使用Last,应该用Dlookup:
Dlookup(" ...

{:soso_e104:}麻烦好人做到底~~~~给填写一下吧。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
17#
发表于 2015-11-9 15:28:15 | 只看该作者
langtaoim 发表于 2015-11-9 10:04
麻烦好人做到底~~~~给填写一下吧。

select b.*
from 表1 as b
inner jion
(select max(a.考试日期) as 考试日期,a.科目
from 表1 as a) as c on b.考试日期=c.考试日期 and b.科目=c.科目;

点击这里给我发消息

18#
 楼主| 发表于 2015-11-9 15:31:40 | 只看该作者
todaynew 发表于 2015-11-9 15:28
select b.*
from 表1 as b
inner jion

先收着,研究~~~~~~~~~~谢谢拉。
19#
发表于 2015-11-9 16:21:49 | 只看该作者
langtaoim 发表于 2015-11-9 15:31
先收着,研究~~~~~~~~~~谢谢拉。

看你的学习积极性很高,再教你一点。你的这个问题是属于现在完成时问题,关于这个问题可学习:http://www.office-cn.net/forum.p ... =%CD%EA%B3%C9%CA%B1
对于现在完成时问题的具体解法,可以有多种SQL语句。在本帖17楼给你的回复只是其中的一种运行效率较高的解法。

点击这里给我发消息

20#
 楼主| 发表于 2015-11-9 16:34:02 | 只看该作者
todaynew 发表于 2015-11-9 16:21
看你的学习积极性很高,再教你一点。你的这个问题是属于现在完成时问题,关于这个问题可学习:http://www ...

我就是要这个啊。。。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-1 15:19 , Processed in 0.093375 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表