2014-09-04 290 views
1

我有一個包含以下字段的表的訪問數據庫:EntryIDMaterialNumberAccess查詢的最後X記錄基於獨立的領域

EntryID MaterialNumber 
1  123 
2  124 
3  125 
4  125 
5  126 

我嘗試寫一個查詢將返回最後3個不同的材料編號。

MaterialNumber 
126 
125 
124 

當我運行此查詢:

SELECT TOP 3 MaterialNumber 
FROM (SELECT EntryID, MaterialNumber FROM Table1 ORDER BY EntryID DESC); 

我得到:

126 
125 
125 

當我添加DISTINCT進入查詢:

SELECT DISTINCT TOP 3 MaterialNumber 
FROM (SELECT EntryID, MaterialNumber FROM Table1 ORDER BY EntryID DESC); 

我得到(不是前三名但是三個最低的條目):

123 
124 
125 

任何人都可以幫助開發一個查詢,並解釋我做錯了什麼?

回答

0

這也拋出了我 - 我認爲訪問是重新排序數據時,你運行選擇不同。在MySQL中,我相信你可以通過ID desc和order by materialnumber而不是ID來進行排序,但是我沒有對它進行測試。但對於訪問這裏的一種方式

Select materialnumber from (
Select top 3 max(entryid), materialnumber from table1 
group by materialnumber order by max(entryid) desc) 
+1

作品太棒了!我一直在努力爲添加Distinct關鍵字提取數據。非常感謝您的解決方案。 – CMarc 2014-09-04 20:30:26