begin process at 2010 02 09 23:10:09
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive SQL

 > 

Archives

 > 

Problème avec une requête

 > 

Requete spéciale


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

Requete spéciale

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ée 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 de classement avec plusieurs tables [ par slider04 ] Bonjour, j'ai deux tables, une table client et une table temps. je souhaiterais en ressortir le classement de temps selon le niveau et le sexe pour le Requete spéciale [ par RichardV72 ] Bonjour,J'ai un fichier du type:Ville1  date1  valeur1Ville1 date2  valeur2Ville1 date 3  valeur3Ville2  date1  valeur4Ville2  date2  valeur5Ville2  d 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 demande de l'aide sur une requete ! [ par tahtouh ] Bonjours  ,     j'arrive pas a trouver une requete  sql qui peu me servire sur  ce cas  :j ai deux table transaction et client je  veux  avoir la somm requete sql [ par moustaine84 ] slt je cherche une requete qui fait l'insertion des des champs dans deux tableaux prmier tableua  a(id-a,nom, prenom) et l 2eme tableau b(id-b,id-a,ag


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,858 sec (4)

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