在Access中帮助此查询

时间:2010-04-18 17:11:47

标签: sql ms-access

ID-     DATE-       NAME
10100-  2010/04/17- Name1
10100-  2010/04/14- Name2
10200-  2010/04/17- Name3
10200-  2010/04/16- Name4
10200-  2010/04/15- Name5
10400-  2010/04/01- Name6

我在一个表中有这些字段(以及其他字段)。我需要进行一个查询,该查询返回带有您的相应名称的ID,其中最近的日期例如该数据示例中所需查询的结果将是。

10100-  2010/04/17- Name1
10200-  2010/04/17- Name3
10400-  2010/04/01- Name6

使用旧日期发现ID。

然后我需要一个查询。感谢。

2 个答案:

答案 0 :(得分:2)

而是尝试像

这样的东西
SELECT table1.*
FROM Table1 INNER JOIN
(
SELECT Table1.ID,  Max(Table1.Date) AS MaxOfDate
FROM Table1
GROUP BY Table1.ID) sub ON Table1.ID = sub.ID and Table1.Date = sub.MaxOfDate

如果这不仅仅是一个示例,您可能还想更改列名称,因为它们是reserved words

答案 1 :(得分:2)

SELECT ID, Date, Name
FROM myTable
INNER JOIN (SELECT ID, Max(Date) AS MaxDate FROM myTable GROUP BY ID) myTable2
ON myTable.ID = myTable2.ID 
WHERE myTable.Date = myTable2.MaxDate

注意:这是在没有尝试的情况下编写的。所以,请善待:)