Получение Самого Раннего Документа

SeverBap

Well-Known Member
18.09.2007
451
0
#1
Нужно получить первое событие по заказу покупателя, событие может быть как основание для заказа так и на основании. Написал запрос с использованием МИНИМУМ по событию но всеравно выводит не первое событие:
Код:
ВЫБРАТЬ РАЗЛИЧНЫЕ
ВложенныйЗапрос.Заказ,
ВложенныйЗапрос.Событие
ИЗ
(ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказПокупателя.Ссылка КАК Заказ,
МИНИМУМ(СобытияПоЗаказу.Событие) КАК Событие
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
RZ_РегистрацияСобытия.Ссылка КАК Событие,
RZ_РегистрацияСобытия.Основание КАК Заказ
ИЗ
Документ.RZ_РегистрацияСобытия КАК RZ_РегистрацияСобытия
ГДЕ
RZ_РегистрацияСобытия.Проведен = ИСТИНА
И RZ_РегистрацияСобытия.Ссылка <> ЗНАЧЕНИЕ(Документ.RZ_РегистрацияСобытия.ПустаяСсылка)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
ЗаказПокупателя.ДокументОснование.Ссылка,
ЗаказПокупателя.Ссылка
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ
ЗаказПокупателя.ДокументОснование.Ссылка <> ЗНАЧЕНИЕ(Документ.RZ_РегистрацияСобытия.ПустаяСсылка)) КАК СобытияПоЗаказу
ПО ЗаказПокупателя.Ссылка = СобытияПоЗаказу.Заказ.Ссылка
ГДЕ
ЗаказПокупателя.Дата МЕЖДУ &ДатаНачала И &ДатаКонец
И ЗаказПокупателя.ПометкаУдаления = ЛОЖЬ
И ЗаказПокупателя.Проведен = ИСТИНА
И ЗаказПокупателя.Контрагент <> ЗаказПокупателя.Проект.Контрагент

СГРУППИРОВАТЬ ПО
ЗаказПокупателя.Ссылка) КАК ВложенныйЗапрос
В какую сторону рыть что-то в моментвремени? не получается так как это надо во вложенном запросе сделать ...
 

Дайнеко

Well-Known Member
19.11.2009
951
0
#2
Я не сильный знаток запросов, но замечу:
* А "МИНИМУМ" точно знает. что надо анализировать дату? а не номер или представление
* Я бы использовал УПОРЯДОЧИТЬ по Дате по убыванию и ПЕРВЫЕ 1. По-моему недвусмысленно и наглядно.
 

unknown181538

НеГуру
28.12.2008
1 417
0
#3
* А "МИНИМУМ" точно знает. что надо анализировать дату? а не номер или представление
Представление. Уж точно не дату - я проверял.
Если надо получать в запросе, то нужна громоздкая конструкция - в одном пакете получаем максимальные даты, в другом - соединяем по этим датам.
 

SeverBap

Well-Known Member
18.09.2007
451
0
#4
Представление. Уж точно не дату - я проверял.
Если надо получать в запросе, то нужна громоздкая конструкция - в одном пакете получаем максимальные даты, в другом - соединяем по этим датам.
Получил самый первый момент времени и соеденил. Запрос конечно большой получился но все выводит верно, скорость тоже устраивает.