IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Comment classer les résultats de ma requete ?


Sujet :

Requêtes et SQL.

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Comment classer les résultats de ma requete ?
    Salut à tous!
    J'ai un problème depuis quelques mois:
    j'ai concu une application access pour calculer les notes des élèves d'un établissement. les bulletin on été édité dans un etat. j'aurais voulu indiquer automatiquement le rang(ordre de mérite) de chaque élève dans un champ de l'état réservé pour cette cause. j'ai tout essayé mais je n'ai pas encore réussi . est ce possible de le resoudre?
    si quelqu'un à un tuyau, je serais content qu'il me le file.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 66
    Points : 58
    Points
    58
    Par défaut
    Bonsoir

    Ton état est il basé sur une requête ? Si oui il suffit de préciser dans la requête le critère croissant sur le champ représentant le mérite.
    L'informatique est une science exacte au comportement aléatoire.

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Comment mettre à jour les champs d'uune requete
    Oui d'accord que cela permettra de faire le classement; mais il ne pourra pas par exemple écrire 1er ou 2è ou 20è pour les ordres de mérite respectifs dans le champ reservé pour cela!
    C'est plutçot cela mon ennui.

  4. #4
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Source du formulaire ou état

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT (SELECT Count(Note)     FROM Tatable T2    WHERE T2.Note<=T1.Note) AS Rang, T1.Note, *
    FROM Tatable AS T1
    ORDER BY T1.Note;
    Note= ton champs Moyenne générale
    Rang= Résultant de ta requête qu'il suffira de glisser ds ton form.
    C'est pas un champs de table

    j'ai fait un test rapide. Ca a l'air de marcher et les exaeco ont le même rang. Là ça va dépendre de votre fonctionnement.
    petit Hic si tu as 2 premiers le classement commence à 2...



    C 1 début...

    Non en fait le résultat a une logique mais fantaisiste pour une gestion de palmarès.
    Par contre en mettant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT (SELECT Count(Note)     FROM Tatable T2    WHERE T2.Note<T1.Note) AS Rang, T1.Note, * 
    FROM Tatable AS T1
    ORDER BY T1.Note;
    ' le "<=" devient "<"
    Il y a un classement correct MAIS cette fois le classement commence par Zéro

    voilà j'te passe ce que j'ai pour le moment...
    A+
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  5. #5
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT (SELECT (Count(Note) + 1)    FROM Tatable T2    WHERE T2.Note>T1.Note) AS Rang, T1.Note, * 
    FROM Tatable AS T1 
    ORDER BY T1.Note DESC;
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  6. #6
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Salut à tous et merci pour tout pour l'intérêt que vous accordez au sujet.
    je vais essayer et je vous rend compte ensuite.

  7. #7
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Slt eustache,
    me concernant c'est la 3ème requête qui donne le résultat le plus probant.
    je n'ai fait le test qu'avec une table et le champs [Note].
    Le résultat est de ce type:

    Note...............Rang
    17.......................1
    16.......................2
    16.......................2
    14.......................4
    13.......................5
    13.......................5
    12.......................7
    ...
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  8. #8
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Je voudrais un peu plus de précision sur les variables utilisées (T1 T2 ...)

  9. #9
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonsoir,

    T1 et T2 ne sont pas des variables, mais des Alias:
    Si ta table s'appelle ELEVES par exemple tu doit avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT Nom,Prenom, Note,
    (SELECT Count(Note) + 1   FROM ELEVES AS T2  WHERE T2.Note>T1.Note) AS Rang
    FROM ELEVES AS T1
    ORDER BY Note DESC;
    Et encore bravo à Faw pour cette belle solution
    @+


    Pensez au tag

  10. #10
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    slt,

    Merci Didier (T pas loin de chez moi dis...) pour ces précisions
    et tes encouragements.

    8)
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  11. #11
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Slt et merci à tous
    j'ai testé la recette et ca marche bien sur les tables. je suis entrain de voir comment faire la transition avec les requêtes puisque les moyennes à classer sont dans des requêtes et non dans des tables.
    merci et à +...

  12. #12
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Le plus simple dans access est d'enregistrer tes requètes et ensuite de te servir de leur nom comme si c'était des tables.

    N'oublie pas le tag "résolu" si tout est ok pour toi...

    Merci
    @+


    Pensez au tag

  13. #13
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Pas de problème même avec des requêtes ca marche supercorrect.
    Bravo encore une fois Faw et merci à Didier pour ses contributions.
    a+

  14. #14
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 2
    Points
    2
    Par défaut classement des résultats de requête
    salut à tous!
    j"ai toujours des problèmes avec le classement des requêtes. après le calcul des moyennes par matière, je désire maintement afficher automatiuement l'ordre de mérite par discipline alors que le calcul des moyennes de toutes les matiére est faite dans la même requete. Comment je pourrais procéder? qui peut méaider pour avoir une instruction sql ou quelque chose dautres.
    merci.

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT matable.élève, matable.discipline, matable.note, DCount("note","matable","note > " & [note] & " and discipline =" & [discipline])+1 AS rang
    FROM matable
    ORDER BY matable.discipline, DCount("note","matable","note > " & [note] & " and discipline =" & [discipline])+1;
    Elle est pas belle la vie ?

  16. #16
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour,

    En complément de la solution de random :

    http://access.developpez.com/sources...ueteClassement

  17. #17
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Novembre 2004!, le temps passe...
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  18. #18
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    salut à tous!
    merci pour la solution. mais quelques difficultés dans les syntaxes;
    ma requête est nomée "moyennematiere" et le champ contenant la note à classer "Moyenne". ensuite j'ai les chapms CodDiscipline, Discipline, NomElève,CodElève. mais qunad j"ai remplacé les variables, une erreur de syntaxe a été decelée.
    Je compte sur tous pour me débloquer.

  19. #19
    Candidat au Club
    Inscrit en
    Octobre 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Salut à tous!
    je suis toujours dans ma fin... je voudrais toujours espérer que quelqu'un me débloque.

  20. #20
    Nouveau Candidat au Club
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut classement dans access (problème résolu)
    Me basant sur "le savoir se partage", je me permets de participer à ce forum pour essayer d'expliquer une méthode simple et efficace facilitant le classement de valeurs dans access.
    dans la requête qui calcule les moyennes des élèves, insérez l’expression suivante :
    (CpteDom("*","note d'élève"," [Expr35] >" & [Expr35])
    [Expr35] est le champ des moyennes calculées
    « Note d’élève » est le nom de la requête.
    Néanmoins, cette expression n’accepte pas les nombres décimaux et puisque tous les nombres ne sont pas divisibles par 3, 6 , 7 , 9,11…(nombre de matières) , l’expression entraînera des erreurs. Voilà pourquoi, j’ai eu recours à une autre colonne dans la même requête pour ne laisser que 2 chiffres après la virgule :
    nouvelle colonne1
    ExprX0: Round([Expr35],2)
    et la formule correcte est la suivante :
    nouvelle colonne2
    ExprX1: (CpteDom("*","note d'élève"," [ExprX0] *100>" & [ExprX0] *100)+1)
    « Note d’élève » est le nom de la requête.
    [Expr35] est le champ des moyennes calculées. Dans votre requête, il doit être remplacé par le nom du champ des moyennes
    *100 pour supprimer les virgules et convertir les nombres décimaux en nombres entiers
    + 1 pour éviter d’avoir 0 comme classement de la plus grande moyenne.
    C’est bien vérifié et les résultats des 157 élèves de l’établissement ont été bien classés.
    Donc « problème résolu »
    irargez

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/12/2013, 10h24
  2. Réponses: 5
    Dernier message: 08/03/2010, 14h09
  3. Comment récupérer les résultats d'une requete SQL?
    Par verbal34 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 13/02/2008, 09h17
  4. [SQL] Comment je peux mettre les résultat d'une requete dans un fichier
    Par Maria1505 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 10/12/2006, 21h44
  5. Réponses: 3
    Dernier message: 04/07/2006, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo