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