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 :

Classement numéroter des enregistrements


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Classement numéroter des enregistrements
    Bonjour,
    Dans une requête destinée à la création d'un état, j'aimerais ajouter un champ qui numérote les enregistrements comme dans un classement.
    Effectivement, j'effectue le tri simple par rapport aux notes des stagiaires et doit effectuer un classement numéroté.

    Merci

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 867
    Points
    56 867
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    Un pt’it tour dans les codes source Access :
    Classer les résultats d'une requête

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Merci beaucoup
    J'avais trouvé au niveau des états avec le cumul par groupe, mais pas pour les requêtes

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Classement numéroter des enregistrements
    bonjour
    En fait il m'aurait fallu sous forme de requete plutôt qu'en Sql, ma requête assez conséquente

    Merci

  5. #5
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 867
    Points
    56 867
    Billets dans le blog
    40
    Par défaut
    bonjour,

    Citation Envoyé par bremmo76
    ...il m'aurait fallu sous forme de requete plutôt qu'en Sql,
    euhh, j'ai pas compris

    Classer les résultats d'une requête:
    Cette section propose plusieurs requêtes pour classer des enregistrements.
    ... et les requêtes sont bien rédigées en langage SQL si si...

    tu veux dire quoi exactement par "sous forme de requete plutôt qu'en Sql" ?

    Eventuellement, donne-nous ta structure tables&champs puis un exemple de ce que doit retourner la requête.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Classement dans les requetes
    Voici le code SQL auquel j'aimerais rajouter en colonne un, le champ pour le classement, champ que je pourrais récupérer pour indiquer dans un état le classement du stagiaire.


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT [Nom] & " " & [Prénom] AS [Nom prenom], Inscriptions.NoteOral, Inscriptions.NoteEcrit, [CodePostal] & " " & [Ville] AS [Ville d'origine], Stagiaires.DernierDiplome, Year([DateConcours]) AS Expr1
    FROM Stagiaires INNER JOIN (Concours INNER JOIN Inscriptions ON Concours.NumeroConcours = Inscriptions.NumeroConcours) ON Stagiaires.NumeroStagiaire = Inscriptions.NumeroStagiaire
    WHERE (((Inscriptions.Liste) Like "Liste Complémentaire"))
    GROUP BY [Nom] & " " & [Prénom], Inscriptions.NoteOral, Inscriptions.NoteEcrit, [CodePostal] & " " & [Ville], Stagiaires.DernierDiplome, Year([DateConcours])
    HAVING (((Year([DateConcours])) Like Year(Now())))
    ORDER BY Inscriptions.NoteOral DESC , Inscriptions.NoteEcrit DESC;


    Merci

  7. #7
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 867
    Points
    56 867
    Billets dans le blog
    40
    Par défaut
    Bonjour,

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    …, Inscriptions.NoteOral, Inscriptions.NoteEcrit, …
    Il y a deux notes. Comment doit-on établir le classement ? Sur la moyenne des deux ?
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY Inscriptions.NoteOral DESC , Inscriptions.NoteEcrit DESC;
    Sur la note d’oral d’abord, puis la note d’écrit pour départager les ex-aequo?

    En attendant tu devrais pouvoir simplifier ta requête en supprimant le regroupement GROUP BY :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT 
    [Nom] & " " & [Prénom] AS [Nom prenom],
     Inscriptions.NoteOral, 
    Inscriptions.NoteEcrit, 
    [CodePostal] & " " & [Ville] AS [Ville origine], 
    Stagiaires.DernierDiplome, 
    Year([DateConcours]) AS Expr1
     
    FROM Stagiaires INNER JOIN 
    (Concours INNER JOIN Inscriptions 
               ON Concours.NumeroConcours = Inscriptions.NumeroConcours) 
    ON Stagiaires.NumeroStagiaire = Inscriptions.NumeroStagiaire
     
    WHERE Inscriptions.Liste Like "Liste Complémentaire"
    AND Year([DateConcours])= Year(Now())
     
    ORDER BY Inscriptions.NoteOral DESC , Inscriptions.NoteEcrit DESC;

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Bonjour
    Merci pour l'aide tout d'abord

    Effectivement le tri doit s'effectuer d'abord sur la note oral et ensuite sur l'écrit
    j'ai retiré le regroupement et je retrouve le code suivant (sans mon fameux champ de classement forcement)

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Nom] & " " & [Prénom] AS [Nom prenom], Inscriptions.NoteOral, Inscriptions.NoteEcrit, [CodePostal] & " " & [Ville] AS [Ville d'origine], Stagiaires.DernierDiplome, Year([DateConcours]) AS Expr1
    FROM Stagiaires INNER JOIN (Concours INNER JOIN Inscriptions ON Concours.NumeroConcours = Inscriptions.NumeroConcours) ON Stagiaires.NumeroStagiaire = Inscriptions.NumeroStagiaire
    WHERE (((Year([DateConcours])) Like Year(Now())) AND ((Inscriptions.Liste) Like "Liste Complémentaire"))
    ORDER BY Inscriptions.NoteOral DESC , Inscriptions.NoteEcrit DESC;
    Une dernière, pourquoi quand on fait un copier coller du code SQL, il nous redemande de selectionner la base de donnée et notamment tes codes que tu me transmet ?

    Merci

  9. #9
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 621
    Points : 56 867
    Points
    56 867
    Billets dans le blog
    40
    Par défaut
    Bon, je décompose le problème (comme d’habitude quand le code SQL devient un tantinet trop long)…

    Une première requête que j’appelle RBremmo1 qui sélectionne les numéros des stagiaires à classer et leurs notes.

    RBremmo1 :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT Inscriptions.NumeroStagiaire, Inscriptions.NoteOral, Inscriptions.NoteEcrit
    FROM 
    Stagiaires  INNER JOIN 
    (Concours INNER JOIN Inscriptions ON Concours.NumeroConcours = Inscriptions.NumeroConcours) 
    ON Stagiaires.NumeroStagiaire = Inscriptions.NumeroStagiaire
     
    WHERE (((Year([DateConcours])) Like Year(Now())) AND ((Inscriptions.Liste) Like "Liste Complémentaire"));


    Et la requête RBremmo2 qui reprend la précédente:

    RBremmo2 :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT RBremmo1.NumeroStagiaire, RBremmo1.NoteOral, RBremmo1.NoteEcrit, 
       (SELECT count(NoteOral) FROM RBremmo1 Temp 
          WHERE RBremmo1.NoteOral*100+RBremmo1.NoteEcrit<Temp.NoteOral*100+Temp.NoteEcrit
       )+1 AS Rang
    FROM RBremmo1
    ORDER BY RBremmo1.NoteOral DESC , RBremmo1.NoteEcrit DESC;

    Le classement s’effectue sur la moyenne pondérée (NoteOral*100+NoteEcrit)


    Pour terminer la requête avec les nom, prenom, ville … du stagiaire, il suffit de reprendre la requête RBremmo2 en "mode création", faire la jointure avec la table Stagiaires sur le champ NumeroStagiaire et rajouter les colonnes souhaitées.

    Citation Envoyé par bremmo76
    Une dernière, pourquoi quand on fait un copier coller du code SQL, et notamment tes codes que tu me transmet ?
    Il faut coller le code en "mode SQL", à ne pas confondre avec "SQL direct".

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Bonjour
    çà fonctionne impeccable.

    Concernant le code SQL , je vais m'y pencher davantage.

    Merci beaucoup

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

Discussions similaires

  1. [AC-2007] Numérotation des enregistrements d'un sous-formulaire
    Par ouanou29 dans le forum VBA Access
    Réponses: 5
    Dernier message: 28/10/2012, 15h05
  2. Numérotation des enregistrements
    Par jerome.vaussenat dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/06/2011, 22h40
  3. Numérotation des enregistrements d'une view
    Par SoGood dans le forum Firebird
    Réponses: 2
    Dernier message: 27/07/2007, 21h23
  4. Réponses: 3
    Dernier message: 05/05/2006, 14h22

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