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 :

Encore un max? peut etre pas


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 18
    Points : 17
    Points
    17
    Par défaut Encore un max? peut etre pas
    Bonjour,
    mon probleme semble simple mais je ne m en sort pas:

    j ai un bete fichier contenant un idResponsable, nom/prenom eleve, date naissance élève
    un responsable peut avoir plusieurs eleves
    je voudrais tout simplement selectionner pour chaque idResponsable, son élève le plus jeune (date de naissance la plus grande)

    je pensais au debut a la requete suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT
            IDRESPONSABLE,
            NOMPRENOMELEVE,
            DATENAISSANCE,
            MAX(DATENAISSANCE) AS MAX_NAISSANCE
    FROM
            MATABLE
    GROUP BY IDRESPONSABLE, NOMPRENOMELEVE
    HAVING DATENAISSANCE = MAX_NAISSANCE
    Bien évidemment cette requete ne me retourne aucun resultat et je pense savoir pourquoi...
    Mes ma question reste, quelle serait la bonne requête?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 401
    Points
    28 401
    Par défaut
    Comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT  t1.* 
    FROM    matable AS t1 
    WHERE   EXISTS 
            (   SELECT  1 
                FROM    matable AS t2 
                WHERE   t1.idresponsable = t2.idresponsable 
                HAVING  t1.datenaissance = MAX(t2.datenaissance) 
            ) 
    ;

  3. #3
    Membre éclairé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Points : 742
    Points
    742
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select
            Idresponsable,
            Nomprenomeleve,
            Datenaissance,
            Max(datenaissance) As Max_naissance
    From
            Matable T1
    Group By Idresponsable, Nomprenomeleve
    Having Datenaissance = ( Select Max(datenaissance)  From Matable T2 Where T2.idresponsable = T1.idresponsable)

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

Discussions similaires

  1. group by/max peut etre
    Par benkunz dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/07/2013, 11h33
  2. Réponses: 3
    Dernier message: 03/09/2009, 13h35
  3. Réponses: 3
    Dernier message: 06/06/2006, 17h15
  4. EDBEngineError : "... ne peut etre utilisee avec ce pil
    Par Dev_Michael dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/03/2005, 15h15

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