查找最新日期时间的记录

时间:2014-11-03 14:47:52

标签: datetime ms-access

我已经尝试了多种解决方案来使我的查询起作用,但每次都会产生太多结果。我只用TagID和datetime得到了正确的答案,但是当我添加其他字段时,问题就开始了。我希望查询只返回每个TagID的最新记录,包括site,event和datetime。

我的表格如下:

TagID   | Site    | Event | DateTime  
Asset1  | Tokyo   | IN    | 01.01.14 22:30  
Asset2  | Tokyo   | OUT   | 01.01.14 22:35  
Asset3  | Bern    | IN    | 01.01.14 22:40  
Asset3  | Bern    | OUT   | 01.01.14 23:30  
Asset4  | London  | IN    | 31.01.14 22:30  
Asset2  | London  | IN    | 31.01.14 22:30  
Asset3  | Tokyo   | IN    | 31.01.14 22:30  

输出应为:

TagID   | Site    | Event | DateTime  
Asset1  | Tokyo   | IN    | 01.01.14 22:30  
Asset4  | London  | IN    | 31.01.14 22:30  
Asset2  | London  | IN    | 31.01.14 22:30  
Asset3  | Tokyo   | IN    | 31.01.14 22:30 

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果您正在使用SQL Server和/或Microsoft Access,请尝试这样的操作。

SELECT t.TagID, t.Site, t.Event, t.DateTime
FROM
(
  SELECT TagID, MAX(DateTime) AS MaxDateTime
  FROM Table
  GROUP BY TagID
) r
INNER JOIN Table t
ON r.TagID = t.TagID AND r.MaxDateTime = t.DateTime