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

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

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