访问 - 选择具有最新日期的唯一行

时间:2015-08-30 22:57:42

标签: sql ms-access

我有一个访问数据库表来跟踪笔记本电脑和称为记录的车辆之间的分配,这些记录显示了ComputerName,它所分配的UnitNumber以及记录分配的日期。

ID  ComputerName    UnitNumber  DateRecorded
1   LT150           5010        8/1/2015
2   LT150           788         8/30/2015
3   LT235           4009        8/4/2015
4   LT150           123         9/21/2015

现在我正在尝试找到一种方法来查询这些结果,以便仅显示最新DateRecorded的唯一ComputerName。

所以结果将是

ComputerName    UnitNumber  DateRecorded
LT150           123         9/21/2015
LT235           4009        8/4/2015

我无法弄清楚如何使查询工作。这是我尝试过的,但它给了我一个聚合函数错误。

SELECT 
    ComputerName, MAX(DateRecorded) as RecetDate,
    UnitNumber 
FROM 
    Records 
GROUP BY 
    ComputerName 

2 个答案:

答案 0 :(得分:1)

您不会将GROUP BY用于此类查询。

相反:

select r.*
from Records as r
where r.DateRecorded = (select max(r2.DateRecorded)
                        from Records as r2
                        where r2.ComputerName = r.ComputerName
                       );

注意:这假设同一台计算机不会使用相同的日期两次。

答案 1 :(得分:0)

您可能会收到错误,因为您在组声明中缺少某个字段。试试这个

SELECT ComputerName, MAX(DateRecorded) as RecetDate,UnitNumber FROM Records 
GROUP BY ComputerName,UnitNumber;