Champ inconnu dans WHERE clause ?

Résolu/Fermé
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 - Modifié le 20 août 2022 à 10:16
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 - 20 août 2022 à 12:29

Bonjour à tous,

On m'a aidé sur ce forum à construire une requête qui fonctionne parfaitement et pour laquelle je souhaitais faire une variante pour n'afficher QUE les factures dont le SOLDE était <> de 0
Si j'ai trouvé simple de faire une soustraction dans la requête, je n'arrive pas à récupérer dans la clause WHERE uniquement les enregistrements dont SOLDE<>0
Avez vous une idée pour solutionner ça ?

SELECT C.facture, clients.nom AS CLIENT, SUM(T.total) AS Total_facture, T2.VERST, SUM(T.total)-T2.VERST AS SOLDE 
FROM (SELECT id_contrat, prix * quantites AS total
      FROM compositions) AS T 
INNER JOIN contrats C ON C.id_contrat = T.id_contrat 
INNER JOIN clients ON clients.id_client = C.id_client 
LEFT JOIN (SELECT A.facture, SUM(A.acompte_recu) AS VERST 
           FROM acomptes A
           GROUP BY A.facture) T2
           ON T2.facture = C.facture 
WHERE SOLDE<>0
GROUP by C.facture

J'ai essayé d'appeler ce SOLDE avec tous les alias possible, y compris en le plaçant à différents endroits de la requête mais rien n'y fait !

Merci d'avance pour votre aide...


Linux / Chrome 104.0.0.0

2 réponses

jee pee Messages postés 40464 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 22 novembre 2024 9 424
20 août 2022 à 10:46

Bonjour,

Le WHERE pourrait dans l'ordre de prise en compte des opérations s'effectuer avant le GROUP BY

Il faudrait essayer

GROUP by C.facture HAVING SOLDE <> 0

ou

GROUP by C.facture HAVING SUM(T.total)-T2.VERST <>  0

1
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
20 août 2022 à 12:29

Merci beaucoup Jee Pee, c'est exactement ce qu'il me fallait !
Ça fonctionne IMPEC !

0