我有一个access数据库,我很清楚它的设计非常糟糕,不幸的是,它是我必须使用的。它看起来有点像以下几点:
(Row#不是数据库中的一个列,它只是为了帮助我描述我想要的东西)
Row# ID Date Misc
1 001 01/8/2013 A
2 001 01/8/2013 B
3 001 01/8/2013 C
4 002 02/8/2013 D
5 002 02/8/2013 A
6 003 04/8/2013 B
7 003 04/8/2013 D
8 003 04/8/2013 D
我要做的是获取最后n(按日期)“条目”输入的所有信息,其中“条目”是具有唯一ID的所有行。
因此,如果我想要最后一个条目,我将得到第6行、第7行和第8行。最后两个条目将给我4-8行,等等。
我尝试在一个子选择中获得SN所需的值,然后选择那些SN出现的所有条目,但是我无法让它工作。任何帮助都很感激。
谢谢。
发布于 2013-08-20 15:13:16
正确的访问语法:
select *
from t
where ID in (select top 10 ID
from t
group by ID
order by max([date]) desc
)
发布于 2013-08-20 14:56:39
我认为这是可行的:
select *
from table
where Date in (
select distinct(Date) as unique_date from table order by unique_date DESC limit <num>
)
这样做的目的是使用带有限制的子subselect来确定您所关心的日期。
编辑:有些数据库不允许在子查询中限制(我正在查看您,mysql)。在这种情况下,您必须从子查询中创建一个临时表,然后从它中选择*。
https://stackoverflow.com/questions/18338232
复制相似问题