begin process at 2012 05 26 08:30:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Access

 > 

Requêtes

 > 

[Access 2000] Problème de comptage !


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[Access 2000] Problème de comptage !

jeudi 7 mai 2009 à 14:32:19 | [Access 2000] Problème de comptage !

julienslici

Salut !

j'ai un probleme avec une de mes requetes SQL.
Je dois compter le nombre de clients par produits, et le taux d'equipement du produit. Par exemple si la moitié des clients utilisent le produit 'coucou', celui-ci aura un taux de 50%

la table CLIENTS contient toutes les informations des clients (identifiant, adresse,...)
la table BIBLIO contient la liste de tous les clients, et leur Chiffres d'affaires de l'année pour chaque produit (N01 correspond au CA de Janvier, N02 Février,...)
La table liste_pdt contient la liste de tous les produits et les gammes auxquels ils sont rattachés

là, pas de problemes :

Code :
SELECT Liste_Pdt.PdtAS Produit,  Sum(IIf(Biblio.[N01]<>0Or Biblio.[N02]<>0,1,0))AS[Clients Période], FormatPercent(CDbl(Sum(IIf(Biblio.[N01]<>0Or Biblio.[N02]<>0,1,0))/15330),2)AS[Taux période],  FROM Liste_Pdt, Biblio, Clients WHERE (((Biblio.Produit)=[Liste_Pdt].[Pdt])AND((Clients.idcli)=[Biblio].[idcli])) GROUP BY Liste_Pdt.Pdt;  
(15.330 est le nombre total de clients.)

seulement un produit peut appartenir à une gamme.

Exemple :
la gamme 'COLIS' contient les produits 'Colis Express' et 'Colis Standard'

dans la base, c'est construit comme ceci :

TABLE liste_pdt
Num | pdt | Marché
1 |Colis Express | COLIS
2 |Colis Standard | COLIS
3 |Fourchette | COUVERTS
4 |Colis Bleu | COLIS

donc dans ma requete je fais :

Code :
  SELECT Liste_Pdt.Marche, Sum(IIf(Biblio.[N01]<>0Or Biblio.[N02]<>0,1,0))AS[Clients Période], FormatPercent(CDbl(Sum(IIf(Biblio.[N01]<>0Or Biblio.[N02]<>0,1,0))/15330),2)AS[Taux période] FROM Liste_Pdt, Biblio, Clients WHERE (((Biblio.Produit)=[Liste_Pdt].[Pdt])AND((Clients.idcli)=[Biblio].[idcli])) GROUP BY Liste_Pdt.Marche ORDER BY Count(Biblio.idcli) DESC;  
Seulement je m'apercois que le taux période dépasse les 100%...

en ajoutant l'identifiant des clients, je vois que certains clients sont comptés plusieurs fois. dans l'exemple, si le client fais du 'Colis Express', du 'Colis Bleu' et du 'Colis Standard', il est compté 3 fois quand j'execute la requete

MARCHE | idCli | Clients Période
COLIS | 120 | 3

et lorsque que l'on fait le compte pour tous les clients, on trouve un nombre de clients supérieur au nombre total de clients...

il devrait afficher

MARCHE | idCli | Clients Période
COLIS | 120 | 1


Comment puis-je faire pour que ma requete ne compte qu'une fois un client?

pourtant je lui dis bien de faire un regroupement sur le marché... je ne comprends pas ^^


Cette discussion est classée dans : liste, colis, clients, biblio, pdt


Répondre à ce message

Sujets en rapport avec ce message

Liste des clients et de leurs commandes en n'affichant qu'une seule fois le nom du client [ par julsac ] Bonjour, J'ai une table Client et une table Commande. J'ai fait une requête qui m'affiche la liste des Clients avec toutes leurs commandes respectiv liste les bases et tables sur sqlser 200 [ par xzonz ] bonjour a toutes et tous ma question est simple (à poser du moins !) est il possible en une seule requete de lister toutes les bases d'un serveur sq Modification de la longueur d'une colonne par la longueur d'une colonne d'une autre table existante [ par karlil ] Bonjour, J'ai essayé plusieurs requêtes, mais je n'arrive pas à modifier la longueur d'une colonne à partir de la longueur d'une colonne d'une autre liste des pays du monde français espagnol anglais [ par samt01 ] Bonjour, j'aimerais récupérer la liste des pays du monde en français, anglais et espanol afin de les insérer dans une table. Savez-vous ou je pourra trigger et enregistrement dans tab_log [ par sana83 ] Bonjour, svp je veux créer un trigger qui me permet d'enregistrer toutes les modifications d'une table "produit" dans une autre table "log_produit". liste déroulante formulaire [ par audreysorelle ] Bonjour, J'ai une liste déroulante alimenter par une table prenons par exemple la table famille ou dans ma liste il y a tout les noms de famille.. Je mise en forme formulaire [ par audreysorelle ] Bonjour, j'ai crée un formulaire permettant d'avoir des informations sur des des DA on une table commande (N° DA, N Commande, Date commande, code piè [clos] Liste des conditions de l'histoire. DATE ECHEANCE --- V.B.6 [ par sportmed ] Ami salut ça va bien ! Voir mon simple application pour savoir plus: http://cjoint.com/?BBCtJCzE7Y1 Afficher une liste des conditions de l'histo [Requête SQL] dépendance entre deux tables [ par b3nsouss ] Bonjour, J'ai deux tables "Table1" et "Table2" respectivement remplis avec "T11, T12, T13" et "T21, T22, T23" et une application en VB où il y a deux liste des tables [ par Mouffi ] Bonjour,Je voudrais recuperer le nom des tables d'une base SQl serveur 2000 depuis un programme vb.netmerci d'avance


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales