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 :

probleme avec max


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Août 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 6
    Par défaut
    salut j'exécute cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select max(ordre),cod_typ_etap,code_libelle,date_etape 
    from etape
    where num_dossier in
    (select num_dossier from etape where num_dossier=4075)
    group by cod_typ_etap,code_libelle,date_etape;
    elle me donne ceci :

    MAX(ORDRE) COD_TYP_ETAP CODE_LIBELLE DATE_ETA
    ---------- ------------ ------------ --------
    1 1 2 10/01/90
    2 2 1 25/01/90
    7 3 26/12/90
    9 4 25/05/07
    8 18 02/01/91
    3 19 09/01/91
    4 20 25/01/91
    5 21 18/09/91
    6 22 20/12/93

    moi je voudrais qu'elle me donne seulement la ligne ayant ordre=max(ordre)
    merci de votre aide .

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 134
    Par défaut
    Dans un premier temps, ta requête telle qu'elle est écrite pourrait être simplifiée ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  max(ordre)
        ,   cod_typ_etap
        ,   code_libelle
        ,   date_etape 
    FROM    etape
    WHERE   num_dossier = 4075
    GROUP BY cod_typ_etap
        ,   code_libelle
        ,   date_etape
    ;
    Ensuite pour obtenir seulement la ligne ayant ordre=max(ordre) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT  ordre
        ,   cod_typ_etap
        ,   code_libelle
        ,   date_etape
    FROM    etape
    WHERE   num_dossier = 4075
        AND ordre = (   SELECT  MAX(ordre)
                        FROM    etape
                        WHERE   num_dossier = 4075
                    )
    ;
    Une autre manière de l'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT  etp.ordre
        ,   etp.cod_typ_etap
        ,   etp.code_libelle
        ,   etp.date_etape
    FROM    etape   AS etp
    WHERE   etp.num_dossier = 4075
        AND EXISTS
            (   SELECT  1
                FROM    etape   AS  lst
                WHERE   lst.num_dossier = etp.num_dossier
                HAVING  MAX(lst.ordre)  = etp.ordre 
            )
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre du Club
    Inscrit en
    Août 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 6
    Par défaut
    merçi
    sql ne sera jamais mon meilleur ami apparement

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

Discussions similaires

  1. Problem requete avec MAX, GROUP BY ...
    Par alexthomas dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/11/2008, 15h58
  2. Probleme avec select max
    Par gsaylat dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/08/2007, 14h14
  3. probleme avec le max
    Par fat dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/06/2007, 12h08
  4. Probleme avec MAX
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 4
    Dernier message: 20/07/2006, 15h13
  5. [EJB3][HIBERNATE] Probleme avec select max
    Par kristof_machin dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/04/2006, 13h05

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