Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 15/03/2012 13:09:01
- Tony
- Membre
Calcul avec des sum et des group by
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
#2 15/03/2012 14:01:54
- gleu
- Administrateur
Re : Calcul avec des sum et des group by
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
#3 15/03/2012 14:02:14
- rjuju
- Administrateur
Re : Calcul avec des sum et des group by
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
#4 15/03/2012 14:03:59
- Tony
- Membre
Re : Calcul avec des sum et des group by
Merci beaucoup.
Ça fonctionne maintenant avec COALESCE.
Hors ligne
Pages : 1