sql—当名称相等时,从access查询中排除相同的返回

wswtfjt7  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(247)

在msaccess中,我有一个包含人员年度考试到期日期和姓名的表。本次考试有效期为12个月,因此下一次考试通常在所有12个月到期之前进行。名为“exam”的表如下所示(在实际表中,名称是唯一的):

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();

它返回:

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

问题是“彼得”做了一次新的检查,从而将他的有效期从2020年7月30日延长到了2020年6月25日,我只想显示最新的一次。查询应返回:

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

我真的迷路了-有人知道怎么解决这个问题吗?谢谢您!

pkwftd7m

pkwftd7m1#

可以使用max和having子句:

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

jvlzgdj92#

如果我没记错的话,就可以使用聚合,并使用 having 条款:

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

这将筛选最新到期日在将来的名称。

相关问题