Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/11/2011, 10h25   #1
Invité régulier
 
Inscription : novembre 2011
Messages : 14
Détails du profil
Informations personnelles :
Localisation : Pays-Bas

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : novembre 2011
Messages : 14
Points : 5
Points : 5
Par défaut Comptage sans doublons

Bonjour a tous,

Je me balade de forum en tutoriel depuis un moment deja et je n'arrive pas a trouver de solution a mon probleme.

J'ai une seule table contenant mes clients, mes produits (avec le "Modele", 'Groupe' et 'Usine') et le volume correspondant.

J'aimerais pouvoir reunir par Groupe et par Usine, le nombre de clients et la somme des volumes pour chaque modele. J'utilise actuellement le code suivant :

Code :
1
2
3
4
5
SELECT Sum(Database.Volume) AS Total, Count(Database.Clients) AS CountOfClients, Database.Modele, Database.Groupe, Database.Usine
FROM [Database]
GROUP BY Database.Modele, Database.Groupe, Database.Usine
HAVING (((Database.Groupe) Between 1 And 3))
ORDER BY Usine, Groupe, Sum(Database.Volume);
Cela me donne bien par Usine, par Groupe, par Modele, le volume total et le nombre de clients, mais le probleme est que ce dernier est faux. En effet si un client achete deux fois le meme modele il est compte deux fois alors que c'est le meme client.

J'ai beau tourner et retourner le code SQL dans tous les sens, je n'arrive pas a ne faire compter les clients qu'une fois. Et bien sur la plupart des solutions sur Internet me proposent d'utiliser un COUNT DISTINCT qui n'existe pas sur Access. Quelqu'un pourrait-il m'aider ?
Bourbon Kid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 10h47   #2
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour Bourbon Kid,

En premier lieu, je te suggère de passer par les assistants de création de requête, ils sont très bien conçus.

Citation:
Envoyé par Bourbon Kid
J'aimerais pouvoir reunir par Groupe et par Usine, le nombre de clients et la somme des volumes pour chaque modele.
==> tu souhaites le nombre de client par Groupe/Usine, tous modèles confondus ?
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 11h03   #3
Invité régulier
 
Inscription : novembre 2011
Messages : 14
Détails du profil
Informations personnelles :
Localisation : Pays-Bas

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : novembre 2011
Messages : 14
Points : 5
Points : 5
Par exemple, je voudrais que pour l'usine U1, la requete me renvoie :

Groupe 1
Modele A 5400 unites 4 clients
Modele C 4300 unites 6 clients
Modele E 1360 unites 1 clients
Groupe 2
Modele B 2300 unites 8 clients
Modele F 1500 unites 3 clients
Modele D 700 unites 2 clients

Sans compter deux fois un client qui acheterait deux fois le meme modele (qui ne correspond pas forcement a deux fois le meme produit, c'est pour ca qu'access me compte en en double certains clients)

Est-ce que c'est plus clair ?
Bourbon Kid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 11h29   #4
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Tu as donc deux groupes en présence, si j'ai bien compris :
  • Usine/Groupe/Modèle => pour obtenir le nombre d'unités vendues, tous clients confondus ;
  • Usine/Groupe/Modèle/Client => pour obtenir le nombre de clients par modèle.

Il te faut donc 4 requêtes. Suggestion, en passant par l'assistant :
Requête R1
  • Usine => Groupe => Modèle (FROM, LEFT JOIN) ;
  • grouper par Usine, Groupe, Modèle (GROUP BY) ;
  • sélectionner Usine, Groupe, Modèle, somme(Unité).
==> nombre d'unités par Usine, Groupe, Modèle, tous clients confondus.


Requête R2
  • Usine => Groupe => Modèle => Client (FROM, LEFT JOIN) ;
  • grouper par Usine, Groupe, Modèle, Client (GROUP BY) ;
  • sélectionner Usine, Groupe, Modèle, Client ;
==> une ligne par Usine, Groupe, Modèle, Client.


Requête R3
  • R2 (FROM) ;
  • grouper par Usine, Groupe, Modèle (GROUP BY) ;
  • sélectionner Usine, Groupe, Modèle, count(*) ;
==> une ligne par Usine, Groupe, Modèle avec le nombre de clients différents.


Requête R4
  • R1 => R3 (FROM) ;
  • sélectionner Usine, Groupe, Modèle, somme(Unité), count(*) ;
==> une ligne par Usine, Groupe, Modèle avec le nombre d'unités et le nombre de clients différents.


Pas testé, mais, sans doute, pas trop éloigné de ce que tu souhaites (si j'ai bien compris).
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/11/2011, 14h00   #5
Invité régulier
 
Inscription : novembre 2011
Messages : 14
Détails du profil
Informations personnelles :
Localisation : Pays-Bas

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : novembre 2011
Messages : 14
Points : 5
Points : 5
Citation:
Envoyé par Richard_35 Voir le message
Tu as donc deux groupes en présence, si j'ai bien compris :
  • Usine/Groupe/Modèle => pour obtenir le nombre d'unités vendues, tous clients confondus ;
  • Usine/Groupe/Modèle/Client => pour obtenir le nombre de clients par modèle.
Oui, c'est exactement ca.

Je suis donc passe par trois requetes qui viennent en alimenter une quatrieme (la finale) et effectivement j'obtiens bien le resultat voulu ! Merci beaucoup pour ton aide.
Bourbon Kid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h27.


 
 
 
 
Partenaires

Hébergement Web