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

Langage SQL Discussion :

Aide pour requête de minimum.


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Septembre 2008
    Messages : 31
    Points : 37
    Points
    37
    Par défaut Aide pour requête de minimum.
    J'aimerai savoir quelle est la requête qui me permet d'extraire les résultats des joueurs les plus faibles dans chaque groupe.

    Voici ma table :


    Table

    Groupes | Joueurs |Résultats
    --------------------------------
    groupe 1 | joueur 2 | 11
    --------------------------------
    groupe 1 | joueur 3 | 13
    --------------------------------
    groupe 2 | joueur 1 | 9
    --------------------------------
    groupe 2 | joueur 2 | 10
    --------------------------------
    groupe 2 | joueur 3 | 13
    --------------------------------
    groupe 3 | joueur 1 | 11
    --------------------------------
    groupe 3 | joueur 2 | 15
    --------------------------------
    groupe 3 | joueur 3 | 10
    --------------------------------
    groupe 3 | joueur 4 | 12
    --------------------------------

    résultat attendus...

    --------------------------------
    groupe 1 | joueur 2 | 11
    --------------------------------
    groupe 2 | joueur 1 | 9
    --------------------------------
    groupe 3 | joueur 3 | 10
    --------------------------------


    NB: Groupes et Joueurs sont une clé composite.

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il faut grouper les données (GROUP BY) par groupe et chercher le plus petit résultat (MIN) puis récupérer l'identité du joueur en faisant une jointure de cette requête avec la table.

    Tu essaies et tu reviens avec une tentative de requête ?
    Il y a déjà eu plein d'exemples sur ce forum et les autres forums dédiés aux SGBD.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Septembre 2008
    Messages : 31
    Points : 37
    Points
    37
    Par défaut
    Je ne suis pas très sûr de comprendre votre solution mais voici ce que j'ai fait, et ca marche :

    1\ Requête : Query1


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Table.Groupes, Min(Table.Resultats) AS MinOfResultats
    FROM Table
    GROUP BY Table.Groupes;
    2\ requête final

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT Table.Groupes, Table.Joueurs, Table.Resultats
    FROM Table INNER JOIN Query1 ON (Table.Resultats = Query1.MinOfResultats) AND (Table.Groupes = Query1.Groupes);
    Cependant es-ce-que c'est possible de la faire dans une seule requête ?

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT t.Groupes, t.Joueurs, t.Resultats
    FROM la_table t
    INNER JOIN 
    (
      SELECT Groupes, MIN(Resultats) AS resultat_mini
      FROM la_table
      GROUP BY Groupes
    ) tmp 
      ON tmp.Groupes = t.Groupes
      AND tmp.resultat_mini = t.Resultats
    ORDER BY Groupes
    Au passage, la coloration syntaxique de votre requête te fait remarquer que "table" est un mot réservé du langage SQL à ne pas utiliser comme nom de table.
    Et en principe, on nomme les tables et les colonnes au singulier.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

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

Discussions similaires

  1. Besoin d'aide pour requête sur grosse table
    Par Fabouney dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2006, 09h01
  2. [SQL] Aide pour requête
    Par portu dans le forum Access
    Réponses: 8
    Dernier message: 23/09/2005, 13h05
  3. Aide pour requête de Tri assez spécial (Oracle)
    Par Chips dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/04/2005, 10h56
  4. [sqlbaseserver]demande de conseils/aides pour requêtes
    Par GéniuS77 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 18/03/2004, 17h27
  5. Aide pour Requête
    Par Guiche dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/11/2003, 20h18

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