|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Membre Expert
![]() ![]() Ingénieur développement logiciels Inscription : juillet 2002 Messages : 1 182 ![]() |
Bonjour,
J'essaye de calculer les clients qui ont encore du forfait Elearning en cours, donc je fais une sélection de tous les clients ou (total acheté - total dépensé > 0). Tout va bien quand j'ai un total dépensé > 0 Mais si j'ai un client qui à acheté un forfait mais n'as jamais rien dépensé (donc total dépensé = 0) la soustraction ne se fait pas. Voici la requete : Code :
Si j'execute séparément la requête : Code :
Code :
et que je le convertis en texte j'obtiens rien et non 0 sur les clients qui n'ont pas eu d'interventions. (donc le retour dois être null au lieu de 0) Je pense que le problème viens probablement de là. Quelqu'un sait comment je peux contourner ? Merci, Harry
__________________
Attention le .NET sur PDA peut causer des chutes de cheveux |
||||||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Bonjour,
Quelque chose du genre : Code :
|
||
|
|
10
|
|
|
#3 | ||
|
Membre Expert
![]() ![]() Ingénieur développement logiciels Inscription : juillet 2002 Messages : 1 182 ![]() |
Bonjour Barbibulle et Merci !
COALESCE marche impec ![]() Voici la requète finale : Code :
__________________
Attention le .NET sur PDA peut causer des chutes de cheveux |
||
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 297 ![]() |
Bonjour,
Sans être expert, il me semble que lors de la création de la base ou d'une table, il serait bien de mettre une valeur par défaut 0 pour les colonnes numériques. Ainsi, si aucune donnée n'est saisie, la valeur est zéro au lieu du traditionnel NULL. Cette approche évite quelques soucis au moment de réaliser une jointure. Il s'agit juste d'un avis |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Tout dépend si vous avez besoin ou non de savoir qu'une valeur a bien été saisie.
En mettant zéro par défaut, vous ne savez plus si c'est parque l'utilisateur à saisie la valeur zéro ou si c'est qu'il n'a rien saisie. Je ne comprend pas le rapport de votre seconde remarque avec les jointures ? De plus cela n'aurait rien changé au problème d'Harry, car ce n'est pas "DUREE" qui renvoi NULL mais l'absence d'enregistrement dans la table INTERVENTIONS pour le client. Du coup le résultat de la requête est NULL. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com