当名称相等时从 ACCESS 查询中排除相同的 returns

Excluding identical returns from ACCESS query when names are equal

在 MS ACCESS 中,我有一个 table 包含个人年度考试到期时间的姓名和日期。此考试的有效期为 12 个月,因此下一次考试通常在所有 12 个月到期之前完成。 Table,叫做“Exam”,看起来像这样(在真实的table名字中是唯一的):

ID   Name   Dateexp
1    Peter  30/07/2020
2    john   10/09/2020
3    Bob    11/10/2019
4    Peter  25/06/2021

我有一个显示“有效”考试的人的查询。我看起来像这样:

SELECT Name As Name, Dateexp As Expiry FROM Overall WHERE Dateexp > now();

它returns:

Name     Expiry
Peter    30/07/2020
John     10/09/2020
Peter    25/06/2021

问题是“Peter”完成了一项新考试,因此将他的有效期从 2020 年 7 月 30 日延长到 21 年 6 月 25 日,我只想显示最新的考试。 查询应该 return:

Name     Expiry
Peter    25/06/2021
John     10/09/2020

我真的迷路了 - 有没有人知道如何解决这个问题? 谢谢!

如果我没听错,你可以只使用聚合,并使用 having 子句进行过滤:

select name, max(dateexp) as expiry 
from overall 
group by name
having max(dateexp) > now();

这会过滤最新到期日在未来的名称。

您可以使用 max 和 having 子句:

Select name, max(dateexp) as dateexp
from overall
Group by name
Having max(dateexp) > now()