Роман, трябва да направите пълно външно свързване на избраното от вас, така че за всеки даден идентификатор на тип събитие (и аз предполагам, че ще имате 0 или 1 ред както в минали, така и в бъдещи таблици за всеки конкретен идентификатор на тип събитие), ще изведете един ред и съответните нулеви и ненулеви дати.
Първият отговор няма да комбинира датите от двата източника в един ред, което според мен поискахте.
Вторият отговор беше по-близък, но щеше да работи само за редове с минала и бъдеща дата (т.е.:по един във всяка таблица) поради вътрешното съединение.
Пример:
insert into event_target (event_type_id, past_event_date, future_event_date)
select nvl(p.event_type_id, f.event_type_id), p.event_date, f.event_date
from
events_source_1 p full outer join
events_source_2 f on p.event_type_id = f.event_type_id
Обърнете внимание, че функцията nvl е за Oracle и ще използва първото различно от нула, което види. ISNULL може да се използва за SQL Server.