Соединение по ближайшей дате

1. konuchovartem@gmail.com 31.03.16 14:53 Сейчас в теме
Есть две таблицы
1)Таб1
- Конфигурация
- ДатаПриемки

2)Таб2
- Конфигурация
- ДатаЗаморозки

Необходимо получить соединение так, что бы таб1.конфигурация = таб2.конфигурация и таб2.ДатаЗаморозки была ближайшая к дате приемки, т.е для каждой строки из левой таблицы получить ближайшую к дате приемки дату заморозки.

На ум приходит только цикл по первой таблице и запрос ко второй внутри цикла. Можно ли это реализовать запросом?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Xershi 1486 31.03.16 14:57 Сейчас в теме
(1) konuchovartem@gmail.com, срез последних в помощь через вложенный запрос.
3. konuchovartem@gmail.com 31.03.16 15:01 Сейчас в теме
К сожалению вторая таблица выбирается из кучи источников, а не из регистра сведений.
4. sommid 31.03.16 15:09 Сейчас в теме
как-то так:
ВЫБРАТЬ
	Источник1.Конфигурация КАК Конфигурация,
	Источник1.ДатаПриемки КАК ДатаПриемки
ПОМЕСТИТЬ ДанныеПриемки
ИЗ
	&Источник1 КАК Источник1
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Источник2.Конфигурация,
	Источник2.ДатаЗаморозки
ПОМЕСТИТЬ ДанныеЗаморозки
ИЗ
	&Источник2 КАК Источник2
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ДанныеПриемки.Конфигурация,
	ДанныеПриемки.ДатаПриемки,
	МИНИМУМ(ДанныеЗаморозки.ДатаЗаморозки) КАК БлижайшаяДатаЗаморозки
ИЗ
	ДанныеПриемки КАК ДанныеПриемки
		ЛЕВОЕ СОЕДИНЕНИЕ ДанныеЗаморозки КАК ДанныеЗаморозки
		ПО ДанныеПриемки.Конфигурация = ДанныеЗаморозки.Конфигурация
			И ДанныеПриемки.ДатаПриемки <= ДанныеЗаморозки.ДатаЗаморозки

СГРУППИРОВАТЬ ПО
	ДанныеПриемки.Конфигурация,
	ДанныеПриемки.ДатаПриемки
Показать
7. bmk74 234 01.04.16 11:20 Сейчас в теме
(4)Ну это только если дата приемки всегда меньше даты заморозки, если же она больше то такой запрос непрально отработает,
Я бы полное соединение сделал по конфигурации и разность дат бы вывел на каджую датуприемки, и потом минимум нашел бы по разности дат...тогда не важно в плюс или минус дата
8. sommid 01.04.16 12:40 Сейчас в теме
(7) ну да, тут вопрос в логике задачи.. я для себя так понял, а какие варианты возможны на самом деле вопрос к автору
5. melenaspb 208 31.03.16 15:10 Сейчас в теме
Очень напоминает задачу "Срез последних на каждую дату в запросе". Погуглите.
6. sommid 31.03.16 15:10 Сейчас в теме
первых два запроса переписываете на выборку данных из ваших документов, регистров и т.д.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот