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 :

requete pour recuperer un max sous oracle


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Points : 144
    Points
    144
    Par défaut requete pour recuperer un max sous oracle
    salut,

    J'ai une table qui contient ses données
    A B C D E
    Y 21/11/2007 14:50:50 123 1 22
    V 21/11/2007 15:50:50 124 1 56
    ce que je souhaiterais c'est recuperer les infos de la premiere ligne
    c'est à dire 21/11/2007 14:50:50 123 1 22
    et pour cela je fois faire une requete qui me retourne le max B (la date) et le max C;
    j'ai fait cette requete mais elle me retourne les deux lignes, je suis un peu perdu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    select  max(B),max(C),D,E from matable
    where B < TO_DATE('21/11/2007 15:50:50, 'DD/MM/YYYY HH24:MI:SS')
    and D= 1
    group by D,E

    est ce que vous voyez comment je pourrai faire ?

    merci à tous.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 101
    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 101
    Points : 28 396
    Points
    28 396
    Par défaut
    Ta version d'Oracle prend-elle en charge les fonctions de regroupement analytique (dont MAX(...) OVER(PARTITION BY ... )) ?

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Points : 144
    Points
    144
    Par défaut
    oui je pense,
    c'est oracle 9i et 10 g que j'ai

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 101
    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 101
    Points : 28 396
    Points
    28 396
    Par défaut
    Sinon, la solution "bourrin" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    SELECT  td.b
        ,   td.c
        ,   td.d
        ,   td.e
    FROM    matable AS td
    WHERE   td.d = 1
        AND EXISTS
            (   SELECT  tc.b
                    ,   MAX(tc.c)
                FROM    matable AS tc
                WHERE   td.b = tc.b 
                    AND tc.d = td.d
                    AND EXISTS
                        (   SELECT  MAX(tb.b)
                            FROM    matable AS tb
                            WHERE   tb.b < TO_DATE('21/11/2007 15:50:50', 'DD/MM/YYYY HH24:MI:SS')
                                AND tb.d = tc.d
                            HAVING  tc.b = MAX(tb.b) 
                        ) 
                GROUP BY tc.b
                HAVING  td.c = MAX(tc.c)
            )
    ;

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Points : 144
    Points
    144
    Par défaut
    je viens tester avec ta requete et ça plus d'une minute qu'elle tourne ,
    est-ce normal ?

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2004
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 532
    Points : 144
    Points
    144
    Par défaut
    en faite elle ne me ramene pas la bonne ligne.

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2011, 13h34
  2. Requete qui ne passe pas sous Oracle
    Par MaelstroeM dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 06/09/2007, 17h14
  3. Réponses: 18
    Dernier message: 11/07/2007, 17h38
  4. [Oracle 9i] Requete pour recuperer un maximum
    Par Eithelgul dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/11/2006, 11h31
  5. [MySQL] [débutant] probleme pour recuperer ID max et ID min
    Par fabien14 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 25/09/2006, 10h48

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