Kilka komentarzy.
Najpierw patrzysz na łączne opłaty konsultingowe we wszystkich portfelach. To wydaje się niezwykłe. Jest zgodny z twoim opisem, ale spodziewam się, że suma będzie oparta na pewnym czynniku, takim jak portfel.
Po drugie, Twój problem pojawia się, gdy nie ma dopasowań w ingoing
lub outgoing
tabele. Wtedy wartości twoich zmiennych to NULL
.
Możesz to łatwo naprawić, wykonując coś takiego:
SET `total` := coalesce(`initial`, 0) + coalesce(`ongoing`, 0);