我有一个访问数据库表来跟踪笔记本电脑和称为记录的车辆之间的分配,这些记录显示了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
答案 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;