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 :
J'ai déjà essayé de faire un CAST en int de 'SUM(DUREE)' sans succès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT * FROM CLIENTS WHERE (SELECT SUM(CMINUTE) FROM CELEARNING WHERE CELEARNING.ID_CLIENT = CLIENTS.ID_CLIENT) - (SELECT SUM(DUREE) FROM INTERVENTIONS WHERE INTERVENTIONS.ID_CLIENT = CLIENTS.ID_CLIENT AND INTERVENTIONS.ELEARNING = 'Oui') > 0 ORDER BY CODE_CLIENT
Si j'execute séparément la requête :
ou si vous préférez
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT SUM(DUREE) FROM INTERVENTIONS WHERE INTERVENTIONS.ID_CLIENT = CLIENTS.ID_CLIENT AND INTERVENTIONS.ELEARNING = 'Oui'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT SUM(DUREE) FROM INTERVENTIONS WHERE INTERVENTIONS.ID_CLIENT = 856 AND INTERVENTIONS.ELEARNING = 'Oui'
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
Partager