在访问查询中仅显示具有特定字段数据的最后一条记录
Posted
技术标签:
【中文标题】在访问查询中仅显示具有特定字段数据的最后一条记录【英文标题】:Show only last record with specific field data in access query 【发布时间】:2016-12-06 20:45:01 【问题描述】:我的 SQL 技能非常基础,但我正在尝试为一家小型企业设置一个非营利性数据库。 我有一个包含财务数据的表 (extract_financial):
regno (organisation registration number, unique),
fystart (date, financial year start),
fyend (date, financial year end),
income,
exped (expenditure).
每个组织都会有一些不同财政年度的记录。并非所有记录都包含收入和支出值。
我只想显示每个组织的一条记录(包括 regno、fyend、income),即最近有任何收入的记录。
我尝试了以下脚本,改编自一个类似的问题,但它不起作用:
SELECT ef.regno, ef.fyend, ef.income
FROM extract_financial ef
INNER JOIN
(
SELECT regno, Max(fyend) AS MaxOfFyend
FROM extract_financial
GROUP BY regno
) AS efx
ON ef.regno = efx.regno
AND ef.fyend = efx.MaxOfFyend
WHERE ef.income IS NOT NULL
查找每个 [regno] 的最新条目的查询有效,但问题是最新记录中从来没有任何收入......所以我想我需要一个 IF THEN?
非常感谢您的帮助,谢谢!
【问题讨论】:
【参考方案1】:你很接近。 WHERE
子句需要进入子查询:
SELECT ef.regno, ef.fyend, ef.income
FROM extract_financial as ef INNER JOIN
(SELECT regno, Max(fyend) AS MaxOfFyend
FROM extract_financial as ef
WHERE ef.income IS NOT NULL
GROUP BY regno
) AS efx
ON ef.regno = efx.regno AND ef.fyend = efx.MaxOfFyend;
【讨论】:
感谢 Gordon,并为迟到的回复道歉。在尝试此脚本时,系统会要求我为 ef.income 和 ef.MaxOfFyend 输入一个参数。有什么想法吗? 编辑后现在开始工作 - 非常感谢@Gordon 的帮助!以上是关于在访问查询中仅显示具有特定字段数据的最后一条记录的主要内容,如果未能解决你的问题,请参考以下文章