Somme des colonnes dans mysql puis utiliser le résultat dans la clause where
Je veux être capable de faire cela:
SELECT dept.id, (invoices.col1 + invoices.col2 + invoices.col3) as sumTotal
FROM dept
INNER JOIN invoices ON invoices.id_dept = dept.id
WHERE sumTotal > 10000
Mais je suis un inconnu de la colonne à l'aide de "sumTotal".
Est-ce possible?
OriginalL'auteur MichelReap | 2013-03-25
Vous devez vous connecter pour publier un commentaire.
Utilisation
HAVING
:Le problème est que le
WHERE
clause est exécuté avant laSELECT
déclaration. Par conséquent, lasumTotal
colonne n'est pas encore disponible.La
HAVING
clause est exécuté après laSELECT
déclaration. C'sortes de filtrer les résultats après que vous avez sélectionné tout. Gardez à l'esprit, bien que, en raison de l'utilisation deHAVING
est plus lent. Il opère sur l'ensemble des lignes.De la Documentation de MySQL:
MySQL et MS-SQL fonctionnent d'une manière différente ici. Ma réponse et la question sont tout à fait à propos de MySQL comme je l'ai indiqué ci-dessus.
Oui, mais j'ai pensé qu'il était intéressant de noter, néanmoins 🙂
Merci, cela a fonctionné pour moi dans MySQL.
OriginalL'auteur Haralan Dobrev
Ou de l'utilisation OÙ...
OriginalL'auteur Strawberry
Vous pouvez aussi essayer ceci:
OriginalL'auteur user1994514
Vous devez utiliser 'avoir' -
Je ne suis pas sûr de savoir si vous pouvez utiliser votre alias de domaine, ou si vous devez écrire " avoir (les factures.col1 + factures.col2 + factures.col3) > 10000.
Le " où "instruction fonctionne en conjonction avec le "select": il filtre les enregistrements sont d'abord retourné. "Avoir des" puis les filtres dataset retourné, normalement, parce que l '"avoir" condition ne pouvait pas être connue au moment de la 'select'.
Pour citer l'un de la documentation, de La " clause HAVING a été ajouté à SQL, car le mot-clé where ne peut pas être utilisé avec les fonctions d'agrégation.' Quelque part, le reste est écrit 'SQL clause HAVING est utilisé en combinaison avec la clause SQL GROUP BY. Il peut être utilisé dans une instruction SQL SELECT pour filtrer les enregistrements d'un GROUPE SQL PAR des retours à la.'
OriginalL'auteur No'am Newman