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

Bases de données Delphi Discussion :

Un peu de [SQL]


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué Avatar de Archibald29
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 112
    Points : 131
    Points
    131
    Par défaut Un peu de [SQL]
    Bonjour,

    Je ne parviens pas à mettre au point une requête qui doit sans doute être trés simple :

    Je travaille sur 3 tables Athlétes, Compétitions, Résultats.
    J'ai des structures basiques pour tests

    Athletes : aCod, aNom
    Compet. : cCod, cNom
    Resulta. : rCod, rDat, rTim, aCod, cCod

    Je veux extraire le vainqueur de chaque compétition, en indiquant le nom de la compétition, la date, le temps, le nom du vainqueur...

    Je parviens à lister les noms des compétitions, date, et meilleur temps, mais ne trouve pas la solution pour coller à mon résultat le nom de chaque athléte vainqueur.

    Code qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select cNom, cDat, min(rTim) from gbe_res
    join gbe_com on gbe_com.cCod=gbe_res.cCod
    group by cNom, cDat
    Que faut il faire pour adjoindre le nom de l'athléte vainqueur à ce résultat ?
    (je travaille avec local SQL D3 ou FireBird 1.5)

  2. #2
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    bonjour

    il faut peut être demander ANom dans ton sélect et joindre la table correspondante.

    à plus

  3. #3
    Membre habitué Avatar de Archibald29
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 112
    Points : 131
    Points
    131
    Par défaut Joindre aNom
    Merci de ta réponse,

    Bien sûr j'ai fait quelques essais avant de créer ce post.
    Je bute à chaque fois sur le fait que les données apparaissent en de multiples exemplaires.

    J'ai essayé de joindre aNom ainsi que la table sous la forme du code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Select cNom, cDat, aNom, min(rTim) from gbe_res r
    join gbe_com c on c.cCod=r.cCod
    join gbe_ath a on a.aCod=r.aCod
    group by cNom, cDat, aNom
    ....

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Il te faut passer par une sous-requête qui te renvoie le 1° temps pour chaque compétition:

    Testé sous FB2 (Ne gère pas les ex-aequo !):
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select c.cnom, a.anom, r.rtim
    from (gbe_res r inner join gbe_ath a
    on r.acod = a.acod)
    inner join gbe_com c
    on r.ccod = c.ccod
    where r.acod = (select first 1 acod from gbe_res where ccod = r.ccod order by rtim);

    Remarque:
    Tes requêtes pourrait être simplifiée si tu incluais un champ classement dans la table des résultats.


    @+ Claudius

Discussions similaires

  1. [SQL - ORACLE] Requete un peu compliquée (pour moi)
    Par Worldofdada dans le forum Langage SQL
    Réponses: 15
    Dernier message: 03/11/2005, 08h25
  2. requette sql un peu tordue
    Par maxidoove dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/08/2005, 14h52
  3. Requete sql un pti peu bizarre
    Par lamoufle dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/08/2005, 08h39
  4. sql un peu farfelue
    Par martiall dans le forum Requêtes
    Réponses: 9
    Dernier message: 08/06/2005, 14h12
  5. [SQL] requetes inbriquées un peu plus complexe.
    Par Devil666 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2005, 11h06

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