Requete complexe
Résolu
bloodchecker
Messages postés
361
Statut
Membre
-
bloodchecker Messages postés 361 Statut Membre -
bloodchecker Messages postés 361 Statut Membre -
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
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Réseaux sociaux
- 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
- Difficulté avec requête SQLite ✓ - Forum Android
- 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 Access
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
361
Statut
Membre
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)