Bonjour,
Je dispose de 2 tables :
Facture et Règlements
A chaque facture peut correspondre 0, n règlements.
Un règlement peut être désactivé et donc il ne doit pas être pris en compte.
En une requête, je voudrais compter le nombre de facture dont le reste à payer est 0.
Pour le moment j'en suis là :
Bon en réalité, ma requête est un poil plus compliquée car elle lie 15 tables, mais il y a l'essentiel ci-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT COUNT(DISTINCT f.factureID) FROM reglement r INNER JOIN facture f ON r.factureID = f.factureID GROUP BY f.factureID HAVING ((f.total - SUM(CASE WHEN r.actif = 0 THEN 0 ELSE r.montant END)) = 0)
Le résultat est une erreur indiquant que f.total n'est pas connu.
j'avais essayé de faire le calcul dans la clause WHERE mais j'avais également une erreur du fait de la somme (j'ai cherché et trouvé que lorsqu'il y une somme dans un WHERE il fallait passer par un HAVING)
Auriez-vous une piste ?
Merci de votre aide !
Partager