Сделать оптимальный запрос: левое соединение только одного значения ближайшее к дате

Новая тема
Показывать по 10 20 40 сообщений
"У него данные находятся в разных таблицах. Это примерно как получать курс валюты на дату документа. Что-то типа такого (по таблицам УТ 10.3):

"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК РТУ,
| МАКСИМУМ(КурсыВалют.Период) КАК ДатаКурса
|ПОМЕСТИТЬ ВТ_МаксДатаКурса
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
| ПО РеализацияТоваровУслуг.Дата >= КурсыВалют.Период
| И (КурсыВалют.Валюта = &ВыбВалюта)
|ГДЕ
| РеализацияТоваровУслуг.Ссылка = &ВыбДокумент
|
|СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслуг.Ссылка
|;||////////////////////////////////////////////////////////////­////////////////////
|ВЫБРАТЬ
| ВТ_МаксДатаКурса.РТУ,
| КурсыВалют.Курс
|ИЗ
| ВТ_МаксДатаКурса КАК ВТ_МаксДатаКурса
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
| ПО ВТ_МаксДатаКурса.ДатаКурса = КурсыВалют.Период
| И (КурсыВалют.Валюта = &ВыбВалюта)""
Спасибо за внимание к моей проблеме.
У меня конфа ЗУП, поэтому в конструкторе посмотреть не смогу выложенный пример ((  Можно было бы мой скопировать в консоль
Попробую так разобраться.
Денис, у вас по одному документу, а как по всем документам сделать?

Ну я типа сделал, но не знаю насколько оптимально.
По все документам делается так же, только условие не ставишь на документ.
Сохрани файл консоли запросов и кинь его сюда.
"Типа того у меня получилось:

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

СГРУППИРОВАТЬ ПО
   Регистр.ФизЛицо,
   Регистр.ПериодДействияКонец
;

////////////////////////////////////////////////////­////////////////////////////
ВЫБРАТЬ
   ВТ_СрезНаДату.ФизЛицо,
   ФИОФизЛиц.Фамилия,
   ФИОФизЛиц.Имя,
   ФИОФизЛиц.Отчество,
   ФИОФизЛиц.Период,
   ВТ_СрезНаДату.ПериодДействияКонец
ИЗ
   ВТ_СрезНаДату КАК ВТ_СрезНаДату
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц КАК ФИОФизЛиц
       ПО ВТ_СрезНаДату.ФизЛицо = ФИОФизЛиц.ФизЛицо
           И ВТ_СрезНаДату.Период = ФИОФизЛиц.Период"
Все вроде бы корректно.
Спасибки.
Я почему-то подумал, что ты мужского рода...
А потом почему усомнился?
> Спасибки

Теперь ты меня вообще пугаешь... :(
Читают тему
(гостей: 1)

Быстрый переход