当名称相等时从 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()
在 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()