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 :

Select max(date) max(heure)


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 42
    Points : 29
    Points
    29
    Par défaut Select max(date) max(heure)
    Bonjour,

    je dois rechercher dans une table une ligne qui est la plus rescente, en gros j'ai un champs date et un champs heure et je voudrai récupérer le max de la date et pous cette date le max de l'heure.
    Pouvez-vous m'orienter vers une requete correct?
    pour l'instant je n'ai qu'une requete avec une sous requete qui a elle meme encore une sous requete et c'est pas très performant...

    Merci

  2. #2
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Points : 64
    Points
    64
    Par défaut
    est-ce que tes champs sont au format date?
    ou au format texte?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 42
    Points : 29
    Points
    29
    Par défaut
    alors le champs date est en date et l'heure en time et la base est en db2...

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 105
    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 105
    Points : 28 398
    Points
    28 398
    Par défaut
    Une manière de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT  t1.*
    FROM    matable AS t1
    WHERE   EXISTS
            (   SELECT  1
                FROM    (   SELECT  t2.col_date
                                ,   MAX(t2.col_heure)   AS max_heure    
                            FROM    matable AS t2
                            GROUP BY    t2.col_date
                        )   AS  t3
                WHERE   t1.col_heure = t3.max_heure
                HAVING  t1.col_date = MAX(t3.col_date)
            )
    ;
    Je ne connais pas les fonctions de conversion en chaîne de DB2, sinon le principe est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT  t1.*
    FROM    matable AS t1
    WHERE   EXISTS
            (   SELECT  1
                FROM    matable AS t2
                HAVING  (t1.col_date || t1.col_heure) = MAX(t2.col_date || t2.col_heure)
            )
    ;

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 896
    Points : 53 130
    Points
    53 130
    Billets dans le blog
    6
    Par défaut
    si vous êtes sous DB2 utilisez le ROW VALUE CONSTRUCTOR pour cela.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MAX((Madate, Monheure)) 
    FROM ...
    Lisez l'article que j'ai écrit sur le RVL : http://sqlpro.developpez.com/cours/sqlaz/select/#L8

    A +

Discussions similaires

  1. Requête date max, date précédente et valeurs associées
    Par Nitromard dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 15/07/2011, 08h39
  2. Select sur un max date, compliqué..
    Par shadeoner dans le forum SQL
    Réponses: 7
    Dernier message: 04/11/2009, 11h16
  3. Mettre select max(date) dans un paramètre
    Par info dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 25/06/2008, 15h41
  4. Select Avec Max(date)
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/08/2006, 17h26
  5. Selection ligne sur max de date
    Par vince_grenoblois dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/07/2006, 12h33

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