Я бы добавил беспокойство 1-ко-многим, приводящее к ложному итогу.Что если в таблице 3 есть 10 записей для данного T2.UniqueID и еще 5 для таблицы T4.Вы только что суммировали итоговую сумму полностью вне диапазона.
Таким образом, я бы предварительно агрегировал из дочерних таблиц, сгруппированных по уникальному идентификатору, отфильтрованному по дате.Кроме того, вы можете удалить таблицу T2 из-за ассоциативных свойств.
T1.ID = T2.Unique_ID = T3.Unique_ID = T4.Unique_ID
to T1.ID = T3.Unique_ID = T4.Unique_ID
SELECT
T1.ID,
T3.C_Date,
T3.C_Amount,
T4.D_Date,
T4.D_Amount
FROM
TABLE_1 T1
LEFT JOIN
( Select Unique_ID, sum( C_Amount ) as T3Sum
from DATABASE1.TABLE_3
where T3.C_Date = '2019-04-11'
group by Unique_ID ) T3
ON T1.ID = T3.Unique_ID
LEFT JOIN
( select Unique_ID, sum( D_Amount ) T4Sum
from DATABASE1.TABLE_4
where D_Date= '2019-04-11'
group by Unique_ID ) T4
ON T1.ID = T4.Unique_ID
Теперь ваша неоднозначность в именах таблиц может помочь стать более реальной описательной.Ваши итоговые суммы основаны на одной дате, но сколько записей в T1 применимо?Если у вас есть 5 тыс. Строк в T1 и всего 450 записей между таблицами T3 и T4, ваш набор результатов все равно даст вам все строки.Тем не менее, вы, вероятно, не хотите, чтобы множество записей, которые не имеют таких деталей во вторичных подзапросах суммы.Я бы добавил предложение WHERE в конце
WHERE
T3.Unique_ID IS NOT NULL
OR T4.Unique_ID IS NOT NULL