Requete complexe
Résolu
bloodchecker
Messages postés
339
Date d'inscription
Statut
Membre
Dernière intervention
-
bloodchecker Messages postés 339 Date d'inscription Statut Membre Dernière intervention -
bloodchecker Messages postés 339 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'effectue la requete suivante pour trouver le total des commande passée par un client sur ma boutique en ligne :
SELECT cli.email as email, cli.nom as nom, cli.prenom as prenom, SUM(v.prixu * v.quantite)+SUM(c.port) as CA FROM venteprod v LEFT JOIN commande c ON v.commande = c.id LEFT JOIN client cli ON c.client = cli.id GROUP BY cli.id
quelques infos :
la table client liste mes clients
la table commande liste mes commandes
la table venteprod liste les produits achetés pour chaque commande
bref cette commande fonction bien et me retourne pour chaque client son email, son nom, son prénom et le total de ce qu'il a acheté sur le site.
maintenant j'aimerai filtrer sur ce chiffre, j'ai donc pensé à faire :
SELECT cli.email as email, cli.nom as nom, cli.prenom as prenom, SUM(v.prixu * v.quantite) as total FROM venteprod v LEFT JOIN commande c ON v.commande = c.id LEFT JOIN client cli ON c.client = cli.id WHERE SUM(v.prixu * v.quantite)>500 GROUP BY cli.id
mais cette commande ne fonctionne pas et j'ai une erreur : "#1111 - Invalid use of group function"
Si vous avez besoin de précision ou si vous avez des suggestions, aidez moi !!
Merci.
J'effectue la requete suivante pour trouver le total des commande passée par un client sur ma boutique en ligne :
SELECT cli.email as email, cli.nom as nom, cli.prenom as prenom, SUM(v.prixu * v.quantite)+SUM(c.port) as CA FROM venteprod v LEFT JOIN commande c ON v.commande = c.id LEFT JOIN client cli ON c.client = cli.id GROUP BY cli.id
quelques infos :
la table client liste mes clients
la table commande liste mes commandes
la table venteprod liste les produits achetés pour chaque commande
bref cette commande fonction bien et me retourne pour chaque client son email, son nom, son prénom et le total de ce qu'il a acheté sur le site.
maintenant j'aimerai filtrer sur ce chiffre, j'ai donc pensé à faire :
SELECT cli.email as email, cli.nom as nom, cli.prenom as prenom, SUM(v.prixu * v.quantite) as total FROM venteprod v LEFT JOIN commande c ON v.commande = c.id LEFT JOIN client cli ON c.client = cli.id WHERE SUM(v.prixu * v.quantite)>500 GROUP BY cli.id
mais cette commande ne fonctionne pas et j'ai une erreur : "#1111 - Invalid use of group function"
Si vous avez besoin de précision ou si vous avez des suggestions, aidez moi !!
Merci.
A voir également:
- Requete complexe
- Tableau complexe word - Guide
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Erreur de requete facebook - Forum Facebook
- Quelle requête écrire pour demander au moteur de recherche de présenter de préférence les pages web traitant de tennis mais pas de tennis de table ✓ - Forum Java
- L'opérateur ou l'administrateur a refusé la requête ✓ - Forum Windows
3 réponses
Salut,
je pense qu'il faut voir du côté de HAVING...
SELECT cli.email as email, cli.nom as nom, cli.prenom as prenom, SUM(v.prixu * v.quantite) as total FROM venteprod v LEFT JOIN commande c ON v.commande = c.id LEFT JOIN client cli ON c.client = cli.id GROUP BY cli.id HAVING SUM(v.prixu * v.quantite)>500
je pense qu'il faut voir du côté de HAVING...
SELECT cli.email as email, cli.nom as nom, cli.prenom as prenom, SUM(v.prixu * v.quantite) as total FROM venteprod v LEFT JOIN commande c ON v.commande = c.id LEFT JOIN client cli ON c.client = cli.id GROUP BY cli.id HAVING SUM(v.prixu * v.quantite)>500
bloodchecker
Messages postés
339
Date d'inscription
Statut
Membre
Dernière intervention
35
OH YEAH ! Merci beaucoup, je ne connaissais pas du tout HAVING. Merci encore, problème résolu !!!
Je viens d'essayer :
SELECT cli.email as email, cli.nom as nom, cli.prenom as prenom, SUM(v.prixu * v.quantite) as total FROM venteprod v LEFT JOIN commande c ON v.commande = c.id LEFT JOIN client cli ON c.client = cli.id WHERE (SUM(v.prixu * v.quantite)>500) GROUP BY cli.id
J'ai obtenu la même erreur.
Pour peut etre mieux visualiser mon problème, il s'agit de la même requete que sur cet exemple mysql : http://dev.mysql.com/doc/refman/5.0/fr/group-by-modifiers.html
Et dans ce cas la, je voudrais filtrer par rapport à SUM(profit)
SELECT cli.email as email, cli.nom as nom, cli.prenom as prenom, SUM(v.prixu * v.quantite) as total FROM venteprod v LEFT JOIN commande c ON v.commande = c.id LEFT JOIN client cli ON c.client = cli.id WHERE (SUM(v.prixu * v.quantite)>500) GROUP BY cli.id
J'ai obtenu la même erreur.
Pour peut etre mieux visualiser mon problème, il s'agit de la même requete que sur cet exemple mysql : http://dev.mysql.com/doc/refman/5.0/fr/group-by-modifiers.html
Et dans ce cas la, je voudrais filtrer par rapport à SUM(profit)