在MS ACCESS中,我有一个表格,其中包含了一个人的年度考试到期时的姓名和日期。此考试有效期为12个月,因此下一次考试通常在所有12个月到期之前完成。表,称为“this”,如下所示(实表名称是唯一的):
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年的30/07/2020延长到了25/06/21,我只想看看最近的一次。查询应返回:
Name Expiry
Peter 25/06/2021
John 10/09/2020
我真的迷路了--有没有人知道如何解决这个问题?谢谢!
发布于 2020-06-25 20:01:02
您可以使用max并拥有子句:
Select name, max(dateexp) as dateexp
from overall
Group by name
Having max(dateexp) > now()
发布于 2020-06-25 20:00:44
如果我正确地跟踪了您,您只需使用聚合,并使用having
子句进行筛选:
select name, max(dateexp) as expiry
from overall
group by name
having max(dateexp) > now();
此筛选器筛选的名称的最近的到期日期是在未来。
https://stackoverflow.com/questions/62583323
复制相似问题