Как в запросе получить последнее значение из выборки? #517849


#0 by LLIaMaH
Например, нужно получить последний документ контрагента в журнале, для нескольких контрагентов. Сразу проблема, как разобраться с периодом, вариант тока один, выбирать за весь период, а это поидее нагрузка нехилая? В результат запроса нада получить последний документ, чтоб не вываливал все документы за период и не заниматься лишней обработкой?
#1 by aleks-id
а упорядочить по дате по убыванию и выбрать первый 1 не судьба?
#2 by Buster007
Выбрать первые 1 и отсортировать по дате
#3 by Homer
а упорядочить по убыванию и ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
#4 by Wobland
я ещё скажу: упорядочить и ВЫБРАТЬ ПЕРВЫЕ 1
#5 by LLIaMaH
Гыг, внатуре ядурак :)
#6 by LLIaMaH
Гыг, внатуре ядурак :) спасибо за совет
#7 by LLIaMaH
Хотя вопрос с периодом выборки остается. Получается если например нада сделать выборку документов движения по виртуальной таблице какогонить регистра, то период придется указывать максимальный, потому что этот самый последний документ может быть введен и для тех что миниуту назад его оформили и для тех кто два года назад...
#8 by LLIaMaH
короче не взлетело вот  пример запроса, в выборке должно получиться по строке на каждого контрагента, содержащее самого контра и его последний документ за период. Запрос выдает список сгруппированный по контрагентам и всем его докам отсортированным в обратном порядке ВЫБРАТЬ Если добавить ПЕРВЫЕ 1 то остаеться просто 1 строка первого контра с его доком.
#9 by luckyluke
ну если тебе надо последний документ не на дату а за всё время существования базы, то да, а вообще, я бы лучше реальную таблицу заюзал... для получения последнего документа.
#10 by LLIaMaH
с пониманием назначения и оптимальности выбора таблиц у меня сложности, из названия понятно что для чего, но есть моменты как например в получением регистратора, для которых можно использовать несколько видов таблиц и в различных вариантах, како выбирать оптимально я пока с трудом соображаю.
#11 by luckyluke
а вон оно чего тебе надо, помнится как-то мне тестовое задание такое дали при приеме на работу, тестовое задание сделал, а на работу не взяли... В общем, тебе надо брать сначала максимальную дату за период в разрезе контрагентов, потом отобрать регистраторы на эту дату в разрезе контрагентов, а потом сделать группировку по максимуму регистратора в разрезе контрагентов... как-то так.
#12 by LLIaMaH
как это замутить внутри запроса чето не соображу.
#13 by luckyluke
Ну, например так: Выбрать Контрагент, Максимум(Регистратор) Из РегистрНакопленияМнеНужный Где Контрагенты в &Контрагенты Контрагент
#14 by luckyluke
А, не то, вот так:
#15 by Buster007
Максимум(Регистратор) КАК Регистратор эт не означает что документ будет последним
#16 by Buster007
+ а, не заметил ) исправился ) но все равно непонятно зачем использовать в Максимум(Регистратор) КАК Регистратор?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С