Второй запрос UNION ALL должен быть объединением таблиц:
select id, date, amount
from Table1
union all
select
t2.id,
case when t1.trueorfalse = 'TRUE' then t1.date else t2.date end
t2.amount
from Table2 t2 inner join Table1 t1
on t1.id = t2.id
Выражение CASE
возвратит либо дату из таблицы 1, либо из таблицы 2. Если ваша база данных поддерживает логический тип данных, возможно, вам следует использовать TRUE
вместо 'TRUE'
.