2017-08-17 80 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

數據有點敏感,所以我不能真正粘貼在這裏。我試過這個。它不會給出錯誤,但不能得到任何數據註銷:/ –