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 :

Créer un classement, Access


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Créer un classement, Access
    Bonjour,
    Ayant quelques notions, je me suis lancé dans la création d'un classement sous Acces. Je me suis vite rendu compte des mes lacunes ...

    J'ai une requête ([Requête1]) qui me sort une liste de coureurs associés à leurs temps, cela dans un ordre croissant:
    Coureur1 Temps1
    Coureur2 Temps2
    Coureur3 Temps3 ...

    Je voudrais associer un chiffre (un score) à chaque coureur en fonction de son chronometre:

    Coureur1 Temps1 5pts
    Coureur2 Temps2 3pts
    Coureur3 Temps3 1point

    Pour cela (c'est peu etre un peu lourd mais j'ai trouvé que ça) j'ai extirpé le Coureur1 grâce à l'opération "Premier" du mode "création" de la requête et j'ai fait quelque chose de similaire pour le dernier.

    Mon problème: je n'arrive pas à associer les 3pts au Coureur2.

    J'aimerai que quelqu'un m'explique comment selectionner le second élément de ma colonne Coureurs ou alors comment supprimer le 1er coureur de la colone pour faire en sorte que le Coureur2 passe Coureur1 et que je puisse le selectionner avec l'operation "Premier".

    J'espere avoir été assez clair pour obtenir une réponse.

    Merci.

    EDIT: Le but global étant de créer un classement général sur plusieurs courses, le Coureur1 peut se retrouver en deuxième position sur la course suivante, ce qui m'empêche de lier les tables par leurs clefs primaires (dans ce cas un même coureur recevrait le même nombre de points quelque soit sa position).

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Est-ce que tu as regardé par là :Classement ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour, et merci !!

    J'étais déjà tombé sur cette page en faisant des recherches pour trouver une réponse à mon problème sans poster .. Le hic c'est que, n'étant pas un pro du SQL, je copie/colle bêtement le code SQL donné et je remplace les noms par les miens ... Ce qui donnait, en prenant le code de l'alinéa 1 de la section Classer els résultats d'une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT 
     (SELECT Count(Temps)
      FROM (SELECT Distinct Temps FROM Requête1) T2
      WHERE T2.Temps>T1.Temps) AS Rang, 
    T1.Temps, *
    FROM Requête1 AS T1
    ORDER BY T1.Temps DESC;
    Ma requête 1 (nommée très originalement Requête1) compte deux colonnes: Coureurs et Temps (coureurs equivaut à Noms et Temps à Notes)


    Lorsque je veux éxecuter cette requête, un message d'erreur s'affiche:
    "Erreur de syntaxe dans l'expression "SELECT Count(Temps essais)
    FROM (SELECT Distinct Temps essais FROM Requête1) T2
    WHERE T2.Temps essais>T1.Temps)"
    ".
    Je ne sais pas si cela vient des T1 et T2 que j'utilise sans en connaitre le sens ou si c'est parce que je travaille à partir d'une requête ou encore si l'erreur vient d'ailleurs ...

    Encore merci pr ton aide et celle à venir.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    Bonjour,

    Ci-joint une petite base

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 777
    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 777
    Points : 58 179
    Points
    58 179
    Billets dans le blog
    42
    Par défaut
    bonsoir,

    un problème analogue est traité ici : Calculer un rang par catégorie

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


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 777
    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 777
    Points : 58 179
    Points
    58 179
    Billets dans le blog
    42
    Par défaut
    @madefemere,

    il me semble que la requête doit être complétée pour prendre en compte les différentes compétitions :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT (SELECT Count(Temps) 
      FROM T_Competition as T2
      WHERE T2.Temps<T1.Temps AND T2.idCompetition=T1.idCompetition)+1 AS Rang, *
    FROM T_Competition AS T1
    ORDER BY T1.idCompetition, T1.Temps;

    Pour un coureur et une compétition donnée, on compte le nombre de coureurs qui ont un temps inférieur dans la même compétition.

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 846
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 846
    Points : 7 983
    Points
    7 983
    Par défaut
    @Fabien,

    Merci pour l'ajout de cette précision.

Discussions similaires

  1. créer aide pour access
    Par cbleas dans le forum Access
    Réponses: 2
    Dernier message: 07/07/2006, 19h01
  2. Comment effacer et créer une requete Access ??
    Par Mustard007 dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/11/2005, 23h15
  3. Créer une base Access avec Delphi
    Par Oluha dans le forum Bases de données
    Réponses: 3
    Dernier message: 11/10/2005, 16h55
  4. [VB.Net] Créer une DataBase Access
    Par toubib dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/10/2005, 19h27
  5. Débutant: comment créer un classement ???
    Par licorne54 dans le forum Access
    Réponses: 5
    Dernier message: 02/10/2005, 16h18

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