我已经尝试了多种解决方案来使我的查询正常工作,但是每次都给出太多的结果。我只用TagID和datetime就能得到正确的答案,但是当我添加其他字段时,问题就开始了。我希望查询仅返回每个TagID的最新记录,并包含站点,事件和日期时间。
我的桌子看起来像这样:
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
有什么建议?
如果您使用的是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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句