2017-08-17 54 views
0

我试图从访问数据库中获取5个值与单个SQL查询。访问SQL:从每个ResourceID中选择TOP 1记录

每一行都有字段'ID','ResourceID','TimeStamp'和其他非重要的值。

'ID'最高的字段是最新值,但同一个'ResourceID'可以是最新'ID'的多倍。

我试过这样的查询,但是这可以多次返回相同的ResourceID。我只想要每个'ResourceID'的最新值

SELECT TOP 5 * FROM tblMachineReport WHERE ResourceID in (61,63,64,68,70) ORDER BY ID DESC; 

任何提示? :)

+0

样本数据和预期的结果会有所帮助。 –

回答

0

我认为你正在寻找这样的:

SELECT mr.* 
FROM tblMachineReport as mr 
WHERE mr.id = (SELECT MAX(mr2.ID) 
       FROM tblMachineReport as mr2 
       WHERE mr2.ResourceID = mr.ResourceID 
      ) AND 
     mr.ResourceID in (61, 63, 64, 68, 70) 
ORDER BY ID DESC; 
+0

数据有点敏感,所以我不能真正粘贴在这里。我试过这个。它不会给出错误,但不能得到任何数据注销:/ –