我已经尝试了多种解决方案来使我的查询起作用,但每次都会产生太多结果。我只用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
有什么建议吗?
答案 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