基于不同字段的最后X条记录的访问查询

时间:2014-09-04 19:14:25

标签: ms-access distinct

我有一个包含以下字段的表的访问数据库:EntryIDMaterialNumber

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

任何人都可以帮助制定查询并解释我做错了吗?

1 个答案:

答案 0 :(得分:0)

这也让我失望了 - 我认为当你运行select distinct时,Access会重新排序数据。在MySQL中我相信你可以通过ID desc和group按ordernumber而不是ID来订购,但我还没有测试过它。但对于Access来说,这是一种方式

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