Quelques commentaires.
Tout d'abord, vous examinez le total des honoraires de consultation pour tous les portefeuilles. Cela semble inhabituel. Il est conforme à votre description, mais je m'attendrais à ce que le total soit basé sur un facteur, tel que le portefeuille.
Deuxièmement, votre problème se produit lorsqu'il n'y a pas de correspondance dans le ingoing
ou outgoing
les tables. Alors les valeurs de vos variables sont NULL
.
Vous pouvez facilement résoudre ce problème en procédant comme :
SET `total` := coalesce(`initial`, 0) + coalesce(`ongoing`, 0);