powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Использование Last
9 сообщений из 9, страница 1 из 1
Использование Last
    #39537571
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос, который выделяет записи по последней дате.
Код: plsql
1.
2.
SELECT Comment.[Код заявки], Comment.com, Comment.date_com
FROM (SELECT [Код заявки], Max(date_com) AS lastdate FROM Comment GROUP BY [Код заявки])  AS lastc INNER JOIN Comment ON (lastc.[Код заявки] = Comment.[Код заявки]) AND (lastc.lastdate = Comment.date_com);


Но, на одну дату может приходиться несколько записей, а мне нужна одна, или First или Last. Как можно доработать запрос?

При такой попытке, выдает ошибку:
Код: plsql
1.
2.
SELECT Comment.[Код заявки], Comment.com, Last(Comment.date_com) AS [Last-date_com]
FROM (SELECT [Код заявки], Max(date_com) AS lastdate FROM Comment GROUP BY [Код заявки])  AS lastc INNER JOIN Comment ON (lastc.[Код заявки] = Comment.[Код заявки]) AND (lastc.lastdate = Comment.date_com);
...
Рейтинг: 0 / 0
Использование Last
    #39537584
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stangна одну дату может приходиться несколько записей, а мне нужна одна
Код: sql
1.
SELECT TOP 1 ...


StangПри такой попытке, выдает ошибку
Last, как и другие групповые функции, не бывает без GROUP BY.
...
Рейтинг: 0 / 0
Использование Last
    #39537594
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Я конечно извиняюсь, но я слегка запутался. В таком варианте мне выдает всего одну запись. А мне нужно одну запись по [Код заявки], а не всего одну. Простите неуча.
...
Рейтинг: 0 / 0
Использование Last
    #39537604
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Типа такого, что ли?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT Comment.[Код заявки]
     , MAX(Comment.com) AS Com
     , Comment.date_com AS [Last-date_com]
FROM (
        SELECT [Код заявки]
             , Max(date_com) AS lastdate 
        FROM Comment 
        GROUP BY [Код заявки]
     )  AS lastc 
INNER JOIN Comment ON (lastc.[Код заявки] = Comment.[Код заявки]) 
                  AND (lastc.lastdate = Comment.date_com)
GROUP BY Comment.[Код заявки]
       , Comment.date_com
;
...
Рейтинг: 0 / 0
Использование Last
    #39537605
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или вместо MAX используйте MIN/FIRST/LAST
...
Рейтинг: 0 / 0
Использование Last
    #39537612
Stang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Прям не знаю как благодарить! Огромное спасибо, с вариантом First все работает прям как мне надо! Спасибо!
...
Рейтинг: 0 / 0
Использование Last
    #39537646
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Информация к размышлению:
выдержка из HELP про First, Last: "Поскольку записи обычно возвращаются без какого-либо специального порядка (кроме случаев, когда запрос содержит предложение ORDER BY), эти функции возвращают случайные записи."
...
Рейтинг: 0 / 0
Использование Last
    #39537649
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку: правда GROUP BY сортирует (вроде бы)по возрастанию
...
Рейтинг: 0 / 0
Использование Last
    #39537732
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuGROUP BY сортирует (вроде бы)по возрастаниюЭто не MySQL... так что на самом деле от лукавого.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Использование Last
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]