Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Requete spéciale [ Archives / Problème avec une requête ] (vdbadr)

lundi 18 avril 2005 à 20:09:39 | Requete spéciale

vdbadr

Salut tout le monde !
Je suis en train de developper une base access pour etablir le profil client et je me bute à
un probleme :
Dans l'une de mes tables, j'ai tout les clients et le volume de leurs achats respectifs (€) et
j'aimerai connaitre le nombre de clients participant à 30, 40 et 50 de mon chiffre d'affaire...
Mais je n'arrive pas a faire la requete ....
Cette derniere resemblerait en francais à :
Compte(Clients) jusqu'a ce que Somme(Volume) > SommeTotale(Volume) avec un un order
by du client (décroissant) pour selectionner les plus gros clients en premier.

Merci à tous d'avance de vos reponses et bonne soirée

mardi 10 mai 2005 à 17:38:56 | Re : Requete spéciale

tecman

Comme tu le dis si bien, on peut exprimer en français notre problématique

 Décomposons le probléme.
1) Il nous faut calculer le total des achat (le chiffre d'affaire)
2) Puis calculer le ration Achat/Total.
3) Sérialiser les clients selon les critéres définis propres au ratio obtenu
4) Comptabiliser le nombre de client répondant à cette série.
Ouf !

1) La requête suivante répond à ce point :
   SELECT Sum(Client.Achat) AS total FROM Client). AS calcul

2 Pour le calcul du ratio, nous devons utiliser la table Client une premiére fois pour sélectionner els clients et une seconde pour intégrer le calcul précédent.
Tout requêteur se perdrait si nous n'utilisions pas les alias.
   SELECT Client.idClient
   FROM Client, (SELECT Sum(cli.Achat) AS total FROM Client AS cli). AS calcul
(cli est donc l'alias pris pour la table Client dans le calcul du total).

3) Une simple condition AND de borne inférieure et de borne supérieure suffit :
   WHERE ((([Achat]/[total])>0.1 And ([Achat]/[total])<0.2));
(pour les cilents dont le ratio est compris entre 10% et 20% par exemple)

4) La fonction Count convient à cette demande :
   SELECT Count(Client.idClient) AS Nb2010

En final nous obtenons la requête finale suivante :
   SELECT Count(Client.idClient) AS Nb2010
   FROM Client, (SELECT Sum(cli.Achat) AS total FROM Client AS cli). AS calcul
   WHERE ((([Achat]/[total])>0.1 And ([Achat]/[total])<0.2))

Tecman

mardi 10 mai 2005 à 18:15:19 | Re : Requete spéciale

tecman

A la relecture de ma proposition, je m'aperçois que je ne répond pas strictement à la demande.
Le compte demandé correspond au numéro de compte du client.
Donc pour répondre (enfin je l'espére), il te suffit de corriger la sélection, de rendre visible le calcul du ratio et d'ordonnacer selon ce ratio.

Nous obtenons la requête suivante :
   SELECT Client.CompteClient, [Achat]/[total] AS ratio
   FROM Client, (SELECT Sum(cli.Achat) AS total FROM Client AS cli). AS calcul
   WHERE ((([Achat]/[total])>0.1 And ([Achat]/[total])<0.2))
   ORDER BY ratio DESC

That's all.

Tecman



Cette discussion est classé dans : client, requete, spéciale, volume, clients


Répondre à ce message

Sujets en rapport avec ce message

bloquer sur une requete [ par yubi ] Salut a tous,Le but :Dans une table de clients (chaque client est identifie par une chaine de carateres (concatenat) composeé de plusieurs informatio table clients [ par lebienestrare ] Bonsoir,c'est clair je peux lier une tble dossier et une table client,mais comment je peux relier une table dossier avec une table client sachant que requete sur pls bases.... [ par exyacc ] salut, voila, j'utilise msde et j'arrive pas a faire des requetes sur des tables qui se trouvent sur 2 bases differentes.... j'ai essayé genre: INS Otimisation de requete [ par Arthenius ] Voici une requete que je tente d'optimiser               SELECT T_CLIENT.*, T_CLIENT2.CLCOD AS CLCOD2, T_TVA.TVACOD, T_TVA.TVALIB        FROM T_CLIEN Requete INSERT sous ACCESS [ par Fredon88 ] J'ai une requete SQL sous ACCESS a faire je dois faire une requete d'insertion dans la table client qui contient les champs suivant: -Client_num -Clie Mémroser les 50 derniers clients consultés [ par globule ] Bonjour, J'essaye de faire un programme qui mémorise les 50 derniers clients qui ont été consultés dans mon logiciel.Chaque nouveau client consu SQL->Oracle [ par cnguyen ] BonjourJ'ai fais une appli en C# avec VS2005 et SQLServer2005Je suis entrain de passer de SQL à Oracle.Je voudrais savoir ce que je dois faire au nive Access, Excel et Requetes avec resultats differents [ par Minick ] Bonjour, Je suis confronté à un probleme que je ne comprend pas. Dans Access j'ai créé une requete (SELECT) avec des parametres qui fonctionne tres bi pourcentage pbl [ par thevman ] bonjour,j'aimerai afficher le pourcentage grace a une requete,le problème c 'est que je ne sais pas comment recuperer ma collonne.Actuellement j'ai ce Requete de selection (ligne autoincrementer) [ par joetecher ] --------------------------------------------------------------------------------Salut à tous Voila j'ai un table qui s'appelle " Produits " avec les c


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,11 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.