powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка при использовании LAST
21 сообщений из 21, страница 1 из 1
Ошибка при использовании LAST
    #32407227
lamefox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
idWarehouses	DateIncoming	IncomingWeight	idIncomingGoods
 11 	              11 . 02 . 2004 	 200 	             18 
 11 	              11 . 02 . 2004 	 100 	             19 
 11 	              11 . 02 . 2004 	 99 	             20 
 11 	              11 . 02 . 2004 	 100 	             21 
 11 	              11 . 02 . 2004 	 200 	             22 
 11 	              11 . 02 . 2004 	 225 	             23 
 11 	              11 . 02 . 2004 	 200 	             24 
 19 	              11 . 02 . 2004 	 333 	             25 
 19 	              11 . 02 . 2004 	 33 	             26 
 19 	              11 . 02 . 2004 	 34 	             27 
 11 	              12 . 02 . 2004 	 99 	             28 
 11 	              12 . 02 . 2004 	 99 	             29 
 12 	              12 . 02 . 2004 	 111 	             30 
 12 	              12 . 02 . 2004 	 111 	             31 
 12 	              12 . 02 . 2004 	 111 	             32 
 12 	              12 . 02 . 2004 	 222 	             33 

Ключевое поле: idIncomingGoods
Выполняю запрос:
Код: plaintext
1.
2.
SELECT LAST(idIncomingGoods) AS LastIdIncomingGoods
FROM IncomingGoods

Получаю результат: LastIdIncomingGoods = 29
Должен быть 33
Подскажите плиз почему такое может быть.

Спасибо
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407232
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Надо брать не Last, а Max.
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407233
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT Max(idIncomingGoods) AS MaxIdIncomingGoods
FROM IncomingGoods
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407235
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Владимир Саныч
Быстрый олень - король леса:)
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407246
lamefox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А почему LAST то не пашет, зачем он тогда нужен ???
Сорри за тупость конечно :))
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407277
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зачем он тогда нужен ???
Ни зачем он не нужен
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407290
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хочешь пользоваться Last, то надо указывать по какому полю сортировать. И хелп переодически читать :)

Код: plaintext
1.
2.
SELECT LAST(idIncomingGoods) AS LastIdIncomingGoods
FROM IncomingGoods
ORDER BY idIncomingGoods
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407315
lamefox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если хочешь пользоваться Last, то надо указывать по какому полю сортировать. И хелп переодически читать :)
Код: plaintext
1.
2.
SELECT LAST(idIncomingGoods) AS LastIdIncomingGoods
FROM IncomingGoods
ORDER BY idIncomingGoods


Это запрос не пашет :)
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407329
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какая разница, работает-не работает, в хелпе всё написано :))
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407338
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется не пашет
Если есть Last - должен быть и Group By
И, по логике, Last должен брать последнюю (согласно указанной сортировке) запись внутри группы. Однако это по моей логике, а по аксесовской - никакой сортировки внутри группы задать невозможно. А без сортировки - вообще непонятно в чем отличие первой попавшейся (First) от последней попавшейся (Last) и вообще от любой попавшейся.
Поэтому и не имеет никакого смысла эта агрегатная функция.
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407347
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Group by не нужен, это выглядит так:

Код: plaintext
1.
2.
3.
4.
SELECT Last([Field]) AS LastField
FROM Fields
ORDER BY Last([Field])

...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407353
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это как - в рекордсете с одной записью сортировка?
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407360
Фотография Varan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я недавно по ошибке написал этот Last вместо max чисто по ошибке, из за того, что думал "Надо найти последнюю запись..." Думаю, что манера Microsoft не убирать из своих продуктов кривые функции не очень хороша. Пусть их будет меньше, но они будут нормальные.
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407363
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Kelme
Окуенная у тебя сортировка
Сначала выбрал Last, потом по нему отсортировал
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407370
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот так вот получается.
Да и глючит она в добавок, попытался применить Last к другому полю, выдаёт первое попавшиеся, даже сортировка не помогает :)
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407373
Kelme
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Л.П.
Это не я, ето в конструкторе запросов сделано :))
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407385
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и глючит она в добавок, попытался применить Last к другому полю, выдаёт первое попавшиеся, даже сортировка не помогает :)
Про что я и говорю. Нету сортировки внутри группы, а без нее нету смысла в слове "первый" или "последний"
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407392
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Внимание! \r
\r
Насчет First и Last когда-то была длинная дискуссия. Вот она:\r
/topic/45103&pg=-1\r
\r
Вопрос особенно неприятен потому, что там замешана ошибка в хелпе.
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407394
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда-то давно я думал, что можно например так

SELECT Last([t2_Value])
FROM [SELECT t2.t2_Value
FROM t2
GROUP BY t2.t2_Value
ORDER BY t2.t2_Value DESC]. as q;

т.е. сначала отсортировать, а потом взять от него ласт. Ан х. Результат не зависит например от DESC. (и прочих предварительных сортировок исходного рекордсета). Т.е. Last не зависит ни от чего, кроме того, в каком порядке вздумается джету дергать записи.
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407395
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Точнее:\r
/topic/45103&pg=-1#309473\r
\r
The Remarks section of the Help File topic, "First, Last Functions" incorrectly states that unless the query includes and ORDER BY clause, the order of records returned will be arbitrary . The correct information is that the order of records returned by the First() and Last() functions is not affected by the ORDER BY clause . \r
\r
The First(), Last(), DFirst(), and DLast() functions ignore sort orders and indexes, and primary keys. These functions are intended to return data from the first or last undeleted record entered into the table , not from the first or last record in a given sort order.
...
Рейтинг: 0 / 0
Ошибка при использовании LAST
    #32407670
Alexus12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Microsoft Knowledge Base Article - 112112

For greater speed, use Group By on as few fields as possible. As an alternative, use the First() function where
appropriate.

For example, if your query is based on Customers and Orders, and you are grouping by Customer ID, Customer
Name, and Customer City, you could use First() for Customer Name and Customer City instead of Group By,
because the value will be the same for all rows with the same Customer ID.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка при использовании LAST
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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