Есть две таблицы
1)Таб1
- Конфигурация
- ДатаПриемки
2)Таб2
- Конфигурация
- ДатаЗаморозки
Необходимо получить соединение так, что бы таб1.конфигурация = таб2.конфигурация и таб2.ДатаЗаморозки была ближайшая к дате приемки, т.е для каждой строки из левой таблицы получить ближайшую к дате приемки дату заморозки.
На ум приходит только цикл по первой таблице и запрос ко второй внутри цикла. Можно ли это реализовать запросом?
1)Таб1
- Конфигурация
- ДатаПриемки
2)Таб2
- Конфигурация
- ДатаЗаморозки
Необходимо получить соединение так, что бы таб1.конфигурация = таб2.конфигурация и таб2.ДатаЗаморозки была ближайшая к дате приемки, т.е для каждой строки из левой таблицы получить ближайшую к дате приемки дату заморозки.
На ум приходит только цикл по первой таблице и запрос ко второй внутри цикла. Можно ли это реализовать запросом?
По теме из базы знаний
- Курсы валют на разные даты в одном запросе. Делаем свой нестандартный срез последних.
- Вариант реализации клиента SOAP на примере получения остатков из MERLION
- Готовые механизмы 1С: ЗУП, представления
- Запускаем 120 000 одновременных пользователей мобильного приложения на платформе 1С
- Применение 1С:Аналитики и Дата акселератора, или Как получить в 1С прозрачность и скорость обработки данных для прямого доступа и контроля руководителя
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
как-то так:
ВЫБРАТЬ
Источник1.Конфигурация КАК Конфигурация,
Источник1.ДатаПриемки КАК ДатаПриемки
ПОМЕСТИТЬ ДанныеПриемки
ИЗ
&Источник1 КАК Источник1
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Источник2.Конфигурация,
Источник2.ДатаЗаморозки
ПОМЕСТИТЬ ДанныеЗаморозки
ИЗ
&Источник2 КАК Источник2
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ДанныеПриемки.Конфигурация,
ДанныеПриемки.ДатаПриемки,
МИНИМУМ(ДанныеЗаморозки.ДатаЗаморозки) КАК БлижайшаяДатаЗаморозки
ИЗ
ДанныеПриемки КАК ДанныеПриемки
ЛЕВОЕ СОЕДИНЕНИЕ ДанныеЗаморозки КАК ДанныеЗаморозки
ПО ДанныеПриемки.Конфигурация = ДанныеЗаморозки.Конфигурация
И ДанныеПриемки.ДатаПриемки <= ДанныеЗаморозки.ДатаЗаморозки
СГРУППИРОВАТЬ ПО
ДанныеПриемки.Конфигурация,
ДанныеПриемки.ДатаПриемки
Показать
(4)Ну это только если дата приемки всегда меньше даты заморозки, если же она больше то такой запрос непрально отработает,
Я бы полное соединение сделал по конфигурации и разность дат бы вывел на каджую датуприемки, и потом минимум нашел бы по разности дат...тогда не важно в плюс или минус дата
Я бы полное соединение сделал по конфигурации и разность дат бы вывел на каджую датуприемки, и потом минимум нашел бы по разности дат...тогда не важно в плюс или минус дата
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот