Няколко коментара.
Първо, разглеждате общите такси за консултации във всички портфейли. Това изглежда необичайно. Съответства на вашето описание, но бих очаквал общата сума да се основава на някакъв фактор, като портфолиото.
Второ, проблемът ви възниква, когато няма съвпадения в ingoing
или outgoing
маси. Тогава стойностите на вашите променливи са NULL
.
Можете лесно да поправите това, като направите нещо като:
SET `total` := coalesce(`initial`, 0) + coalesce(`ongoing`, 0);