Come è noto il database MariaDB-MySQL mette a disposizione l'operatore +
per effettuare delle somme:
MariaDB > select 5+5;
+-----+
| 5+5 |
+-----+
| 10 |
+-----+
1 row in set (0.00 sec)
Se vogliamo sommare più valori di una medesima riga, dobbiamo utilizzare l'operatore + e non la funzione SUM.
Supponiamo di avere una tabella "costi" con i campi Costo1, Costo2, Costo3, Costo4 e di voler ottenere da una select la somma di questi 4 campi.
MariaDB > SELECT Costo1+Costo2+Costo3+Costo4 FROM costi WHERE Id = '2';Sin qui tutto bene, ma cosa succede se uno dei 4 campi assume il valore NULL? La query restituirà semplicemente NULL!
+-----------------------------+
| Costo1+Costo2+Costo3+Costo4 |
+-----------------------------+
| 14 |
+-----------------------------+
1 row in set (0.00 sec)
Abbiamo già visto in un altro post, "Database MariaDB o MySQL ed il valore NULL" , come il valore NULL non possa banalmente considerarsi pari a 0, ma vada trattato con le molle.
Anche in questo caso dobbiamo adottare gli opportuni accorgimenti e riscrivere la query nel seguente modo:
MariaDB > SELECT IFNULL(Costo1,0)+IFNULL(Costo2,0)+IFNULL(Costo3,0)+IFNULL(Costo4,0) FROM costi WHERE Id = '2';