Просто используйте union all
или join
. Для этого нет причин создавать новую таблицу:
select date, sum(v_create) as v_create, sum(v_update) as v_update,
sum(v_updatenotes) as v_updatenotes, sum(v_adddependent) as v_adddependent,
sum(orderrec) as orderec
from ((select t1.date, v.*, 0 as OrdersRec
from table1 t1 cross apply
(values ( (case when event = 'Create Account' then quantity else 0 end),
(case when event = 'Update Account' then quantity else 0 end),
(case when event = 'Update Notes' then quantity else 0 end),
(case when event = 'Add Dependent' then quantity else 0 end)
)
) v(v_create, v_update, v_updatenotes, v_adddependent)
) union all
(select date, 0, 0, 0, 0, orderrec
from table2
)
) t
group by date
order by date;
Это обрабатывает множество крайних случаев, например, когда даты отсутствуют в одной или других таблицах.