ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1383|回复: 3

[求助] Access 查询结果只保留某字段的最新值

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-3-3 19:35 | 显示全部楼层 |阅读模式
Access新人求助,这两天突然被老板要求用Access做一个数据库满足他的需求,我现在也在自学,只是很有可能来不及,为了进度特此来求助。
我的data情况:
表A:“项目ID”(主键),“项目开始日期”,“项目领导”(与其他表主键链接),“项目简介”
表B:“更新ID”(主键),“项目ID”(与表A链接),“项目最新进展”(与其他表主键链接),“最后更新日期”

简单解释一下:每当有新项目启动时,记录在表A内;每当已启动项目获得了进展,记录在表B内。所以会出现有些项目在表A里出现,但不在表B里出现,因为已启动不代表有进展。

我现在是做了一个查询,要显示的字段是“项目ID”、“项目最新进展”、“最后更新日期”、“项目领导”、“项目简介”,使得表A和表B的数据都汇总到一个查询里面,这里称为临时表C。但我发现,同一个项目如果有多次更新进展,结果中就会显示多行。
我的需求:如何做到最终的查询结果,每个项目ID只显示一行,这一行的“最后更新日期”和“项目最新进展”都是最新的?

我自己有三种想法:
1. 对临时表C进行操作。
2. 将临时表C导出保存在数据库里,命名为表D。
3. 将临时表C里的“项目ID”与表A的“项目ID”相比对,当相同时返回多行结果,只保留“最后更新日期”里面最近的那一行。
但我也是刚学Access,思路有,也不知道是否可行,也不知道如何操作。



表B

表B

表A

表A

TA的精华主题

TA的得分主题

发表于 2018-3-3 20:58 | 显示全部楼层
用SQL语句就可以得到结果,把文件放上来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-3-3 22:26 | 显示全部楼层
好的。已上传。我用的查询叫做“银行行业查询结果”。感谢大佬!

BD Database Test 3.7z

32.27 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2018-3-4 17:51 | 显示全部楼层
用下面的语句替换原来的:
SELECT All_Activities.项目ID, All_Activities.Client_Name, All_Activities.Industry, 项目最新进展, 最后更新日期, All_Activities.项目启动日期, All_Activities.Initiative, All_Activities.Initiative_Leader, All_Activities.项目简介
FROM All_Activities LEFT JOIN (SELECT a.* FROM 表B AS a WHERE 最后更新日期=(select max(最后更新日期) from 表b where 项目id=a.项目id)) 查询1 ON All_Activities.项目ID = 查询1.项目ID
WHERE (((All_Activities.Industry)="bank"));

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 17:38 , Processed in 0.042549 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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