Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL按日期获取n个最后唯一的条目_Sql_Ms Access 2007 - Fatal编程技术网

SQL按日期获取n个最后唯一的条目

SQL按日期获取n个最后唯一的条目,sql,ms-access-2007,Sql,Ms Access 2007,我有一个access数据库,我很清楚它的设计非常糟糕,不幸的是我必须使用它。它看起来有点像以下内容: 行不是数据库中的一列,它只是用来帮助我描述我想要什么 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

我有一个access数据库,我很清楚它的设计非常糟糕,不幸的是我必须使用它。它看起来有点像以下内容:

行不是数据库中的一列,它只是用来帮助我描述我想要什么

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的所有行

因此,如果我想要最后1个条目,我将得到第6、7和8行。最后两个条目将得到第4-8行等

我尝试在子选择中获取所需的序列号,然后选择那些序列号出现的所有条目,但无法使其工作。谢谢你的帮助


谢谢

我认为这会奏效:

select * 
from table 
where Date in (
    select distinct(Date) as unique_date from table order by unique_date DESC limit <num>
)
这样做的目的是使用带有限制的subselect来只标识您关心的日期


编辑:有些数据库不允许在子查询中设置限制。我在看你,mysql。在这种情况下,您必须从子查询中创建一个临时表,然后从中选择*。

正确的访问语法:

select * 
from t 
where ID in (select top 10 ID
             from t
             group by ID
             order by max([date]) desc
            )

谢谢你。我正在进步,但这仍然给我带来了不确定的数据。你知道为什么当我只运行前1的子查询时,我得到了8个ID值吗?我已经计算出来了。似乎001-1和001-2的两个值被计算为同一个值。谢谢