Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2661 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL MS.Access] TOP10 par catégorie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[SQL MS.Access] TOP10 par catégorie

n°1698819
daDD
Posté le 07-03-2008 à 12:37:53  profilanswer
 

Bonjour,
 
j'ai un table de note de frais de collaborateurs.
 
pour le moment j'arrive à afficher le TOP10 des plus "gros dépensiers"
 

SELECT TOP 10  
  [COLL].MATRICULE,  
  [COLL].NOM,  
  [COLL].PRENOM,  
  [COLL].RANK,  
  Sum([FRAIS].MT) AS SumOfMT
FROM  
  [COLL] INNER JOIN [FRAIS]  
ON  
  [COLL].MATRICULE=[FRAIS].MATRICULE
GROUP BY  
  [COLL].MATRICULE,  
  [COLL].NOM,  
  [COLL].PRENOM,  
  [COLL].RANK,  
ORDER BY  
  Sum([FRAIS].MT) DESC;


 
Cela m'affiche le TOP10, tout rank confondu.
 
Il me faudrait maintenant pourvoir afficher le TOP10 par RANK:
C'est à dire le TOP10 de chaque RANK, en gros x TOP10 pour les x RANK de ma table COLL.
 
Et là, j'ai les doigts qui collent un peu au clavier. Si quelqu'un pouvait m'aider.
 
Merci d'avance,


Message édité par daDD le 11-03-2008 à 11:56:34

---------------
☢ Hail to the Ping Baby ! ☢
mood
Publicité
Posté le 07-03-2008 à 12:37:53  profilanswer
 

n°1700441
daDD
Posté le 11-03-2008 à 11:55:36  profilanswer
 

J'ai un peu avancer dans mes recherches, ou plutot reculé  :pt1cable:  
 
Pour afficher ce que je souhaitais, il faudrait apparement que je place mon SELECT TOP 10 dans une sous-requete.
Le problème qui ce pose, c'est que Access n'aime pas trop et tire la pate pour rappatrier le résultat.
 
Du coup, je pensais mettre un compteur de ligne qui ce réinitialiserait à chaque nouveau RANK.
 

SELECT  
  [COLL].MATRICULE,  
  [COLL].NOM,  
  [COLL].PRENOM,  
  [COLL].RANK,  
  Sum([FRAIS].MT) AS SumOfMT
FROM  
  [COLL] INNER JOIN [FRAIS]  
ON  
  [COLL].MATRICULE=[FRAIS].MATRICULE
GROUP BY  
  [COLL].MATRICULE,  
  [COLL].NOM,  
  [COLL].PRENOM,  
  [COLL].RANK,  
ORDER BY  
  [COLL].RANK, Sum([FRAIS].MT) DESC;


 
Le résultat donne :
 


MATRICULE      | NOM     | PRENOM  | RANK       | SumOfMT
20             | TITI    | Claude  | Ass.Com    | 300
15             | TATA    | Daniel  | Ass.Com    | 200
3              | TOTO    | Paul    | Commercial | 1000
1              | RIRI    | Jean    | Commercial | 800
4              | FIFI    | Louis   | Commercial | 500
16             | DUBOSS  | Nicolas | Gérant     | 700


 
Et je voudrais rajouter une colonne CPT pour obtenir ceci :


MATRICULE      | NOM     | PRENOM  | RANK       | SumOfMT | CPT
20             | TITI    | Claude  | Ass.Com    | 300     | 1
15             | TATA    | Daniel  | Ass.Com    | 200     | 2
3              | TOTO    | Paul    | Commercial | 1000    | 1
1              | RIRI    | Jean    | Commercial | 800     | 2
4              | FIFI    | Louis   | Commercial | 500     | 3
16             | DUBOSS  | Nicolas | Gérant     | 700     | 1


 
 
J'ai beau chercher sur le net, je n'arrive pas à créer le bon module pour faire cette satané boucle.
 
!HELP


---------------
☢ Hail to the Ping Baby ! ☢
n°1700467
daDD
Posté le 11-03-2008 à 13:21:42  profilanswer
 

Apparement, je pourrais aussi ajouter une condition dans ma requête avec la fonction IIF (Merci billou de rajouter un i à if ^^)
 
Mais comment ?
 
IIF ([COLL].RANK = [COLL].RANK.PRECEDENT ; $cpt + 1 ; 1) ???
 
Comment écrire ca sous access.


---------------
☢ Hail to the Ping Baby ! ☢

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [SQL MS.Access] TOP10 par catégorie

 

Sujets relatifs
Conseil sur gestion de la BDD [SQL]C# -- Problème d'éxécution de requête sur la base SQL server
comparaison des champs accessimprimer un onglet excel depuis access
question simple ds Accessaide pour programmer en PL/SQL
[Requêtes SQL] Base(OpenOffice) VS Access(Microsoft)Jointures SQL pour limiter accès
Menu deroulant plusieurs niveaux, à selectionner par SQL 
Plus de sujets relatifs à : [SQL MS.Access] TOP10 par catégorie


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR