Приветствую, Форумчане!
В СКД сделал запрос на объединение нескольких документов: ПКО, БанкПоступление.
В результате получил данные типа
Закзз01 ПКО_01 01.01.2018
Закзз01 ПКО_02 01.01.2017
Закзз01 ПКО_03 01.01.2015
Закзз01 банк_01 01.01.2014
Закзз01 банк_02 01.01.2013
..............
Закзз02 ПКО_01 01.01.2018
Закзз02 ПКО_02 01.01.2017
Закзз02 ПКО_03 01.01.2015
Закзз02 банк_01 01.01.2014
Закзз02 банк_02 01.01.2013
Как видно по одному и тому же Заказу имеются различные поступления по типу и датам. Необходимо из этого запроса объединения выбрать только одно поступление с минимальной датой для каждого Заказа:
Закзз01 банк_02 01.01.2013
Закзз02 банк_02 01.01.2013
Как можно в запросе на объединение вырать минимальные значения по датам для каждого Заказа?
Constantus @ Сегодня, 10:45
,
Не воспринимать буквально, это лишь пример алгоритма. Смысл такой сначала получаем минимальную дату поступления на каждый заказ, а дальше по этой дате уже получаем непосредственно документ Поступления
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Заказы.Ссылка КАК Заказ,
| МИНИМУМ(ЕСТЬNULL(Поступления.Дата, ДАТАВРЕМЯ(1,1,1,0,0,0))) КАК МинДатаПоступления
|ПОМЕСТИТЬ ВтМинДатаПоступлений
|ИЗ
| Документ.Заказ КАК Заказы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поступления КАК Поступления
| ПО Заказы.Ссылка = Поступления.Заказ
|СГРУППИРОВАТЬ ПО
| Заказы.Ссылка
|;
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВтМинДатаПоступлений.Заказ,
| ЕСТЬNULL(Поступления.Ссылка, ЗНАЧЕНИЕ(Документ.Поступления.ПустаяСсылка)) КАК Поступление
|ИЗ
| ВтМинДатаПоступлений КАК ВтМинДатаПоступлений
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.Поступления КАК Поступления
| ПО ВтМинДатаПоступлений.МинДатаПоступления = Поступления.Дата
| И ВтМинДатаПоступлений.Заказ = Поступления.Заказ
|";
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua