Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Dans une table, j'ai des champs contenant des nombres ou des valeurs null
Cette requête me fait correctement la somme des champs
select client , sum(montant_vendu), sum(montant_facture)
from matable
group by client
Mais si je veux calculer avec cette requête, la différence des deux montants, cela ne fonctionne que si les montants contiennent des valeurs :
select client , sum(montant_vendu), sum(montant_facture), sum(montant_vendu)-sum(montant_facture)
from matable
group by client
Si le champ 'sum(montant_facture)' est vide, le resultat sera vide alors qu'il devrait être égale à sum(montant_vendu)
Je pense que c'est un problème de conversion de valeurs null en nombre, mais je n'y arrive pas.
Merci d'avance pour votre aide
Hors ligne
PostgreSQL ne peut pas transformer une valeur NULL en une valeur non NULL. Quelle valeur devrait-il prendre vu que NULL, c'est inconnu ?
Par contre, vous pouvez lui dire de remplacer une valeur NULL par une autre grâce à la fonction coalesce. Par exemple coalesce(expression, 0) aura comme résultat 0 si expression est NULL et expression dans les autres cas.
Guillaume.
Hors ligne
Bonjour.
Vous pouvez régler le problème en faisant des sum(COALESCE(champ,0.0)), ce qui remplacera les valeurs nulles par 0.
Julien.
https://rjuju.github.io/
Hors ligne
Merci beaucoup.
Ça fonctionne maintenant avec COALESCE.
Hors ligne
Pages : 1