Prd requête sql
Fermé
Tiinooo
-
Modifié par Tiinooo le 24/05/2011 à 13:33
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 24 mai 2011 à 17:00
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 24 mai 2011 à 17:00
A voir également:
- Prd requête sql
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix - Forum PHP
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - 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
2 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
24 mai 2011 à 15:19
24 mai 2011 à 15:19
Bonjour,
Alors, je suis surpris de la syntaxe
INNER JOIN ((CLIENT INNER JOIN FACTURE ON CLIENT.NumClient = FACTURE.NumClient)
.
Mais je ne connais pas trop Access, donc, admettons.
Par contre, le message d'erreur indique qu'il attend que les champs CLIENT.Nom et CLIENT.Prénom soient inclus à ta clause GROUP BY.
Donc ta requête deviendrait :
Alors, je suis surpris de la syntaxe
INNER JOIN ((CLIENT INNER JOIN FACTURE ON CLIENT.NumClient = FACTURE.NumClient)
.
Mais je ne connais pas trop Access, donc, admettons.
Par contre, le message d'erreur indique qu'il attend que les champs CLIENT.Nom et CLIENT.Prénom soient inclus à ta clause GROUP BY.
Donc ta requête deviendrait :
SELECT CLIENT.NumClient, Sum(Prix*Quantite) AS CA_Client, CLIENT.Nom, CLIENT.Prénom, CLIENT.Addresse, CLIENT.Code_postal FROM PRODUITS INNER JOIN ((CLIENT INNER JOIN FACTURE ON CLIENT.NumClient = FACTURE.NumClient) INNER JOIN COMPONANT ON FACTURE.RefFact = COMPONANT.RefFact) ON PRODUITS.RefPdt = COMPONANT.RefPdt WHERE (((FACTURE.RefFact)=[COMPONANT].[RefFact]) AND ((PRODUITS.RefPdt)=[COMPONANT].[RefPdt])) GROUP BY CLIENT.NumClient, CLIENT.Nom, CLIENT.Prénom, CLIENT.Addresse, CLIENT.Code_postal;
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 309
24 mai 2011 à 16:34
24 mai 2011 à 16:34
Bonjour,
de façon général, que ce soit en Accès, SQL, MySQL, Oracle... quand on fait une requête de sélection avec un agrégat (somme, moyenne, maximum, minimum...), TOUS les champs qui ne comportent pas d'agrégat doivent être présents dans la clause GROUP BY. Donc ta clause GROUP BY doit contenur le numéro de client, le nom, le prénom, l'adresse et le code postal, comme l'indique Reivax962.
Cordialement.
de façon général, que ce soit en Accès, SQL, MySQL, Oracle... quand on fait une requête de sélection avec un agrégat (somme, moyenne, maximum, minimum...), TOUS les champs qui ne comportent pas d'agrégat doivent être présents dans la clause GROUP BY. Donc ta clause GROUP BY doit contenur le numéro de client, le nom, le prénom, l'adresse et le code postal, comme l'indique Reivax962.
Cordialement.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
24 mai 2011 à 17:00
24 mai 2011 à 17:00
Pour info, ce n'est pas forcément vrai sur MySQL par exemple.
Mais cela pose plus de problèmes que cela n'en résout, et, on est bien d'accord, on a tout intérêt à rester rigoureux sur ce point.
Mais cela pose plus de problèmes que cela n'en résout, et, on est bien d'accord, on a tout intérêt à rester rigoureux sur ce point.