Помогите с этим запросом в Access - PullRequest
1 голос
/ 18 апреля 2010
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

У меня есть эти поля (и другие тоже) в одной таблице. Мне нужно сделать запрос, который возвращает идентификатор с вашим соответствующим именем, где более поздняя дата, например, результаты для желаемого запроса в этом примере данных будут.

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

Ommiting ID со старыми датами.

Тогда мне нужен один запрос для этого. спасибо.

Ответы [ 2 ]

2 голосов
/ 18 апреля 2010
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

Примечание: это написано без проверки. Так что будьте добры :))

2 голосов
/ 18 апреля 2010

Скорее попробуйте что-то вроде

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

Вы также можете изменить имена столбцов, если это не просто пример, так как это зарезервированные слова .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...