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

SQL Oracle Discussion :

Afficher la ligne avec la date la plus récente


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 14
    Points
    14
    Par défaut Afficher la ligne avec la date la plus récente
    J'aimerai isoler la ligne d'une table qui contient une colone date_heure (au format date) avec la date la plus récente ?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Quelle version d'Oracle ?

    Qu'avez-vous essayé ?

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    oracle 10 g

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      select *
        from charges
       where date_heure_charge_four is not null
         and rownum = 1 
    order by date_heure_charge_four asc;

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Il doit bien y avoir un critère de rupture dans vos données, là rien n'apparaît dans votre requête.

    Je veux bien vous aider mais il va falloir vous montrer un peu plus prolixe.

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Que voulez vous savoir ?

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Voila ma table j'aimerai récupérer une seule ligne

    32 19-juil.-2010 15:15:20
    31 19-juil.-2010 15:13:02
    29 16-juil.-2010 15:19:18
    6 15-juil.-2010 11:33:41
    5 15-juil.-2010 11:33:41
    4 15-juil.-2010 11:33:41
    7 15-juil.-2010 11:33:41
    -----------------------------------------
    Résultat

    32 19-juil.-2010 15:15:20

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Essayez comme ça :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *
      FROM ( SELECT rownum, c.*
               FROM charges c
              WHERE c.date_heure_charge_four IS NOT NULL
           ORDER BY c.date_heure_charge_four DESC)
     WHERE rownum = 1

  8. #8
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    Waldar, le rownum n'est-il pas sensé être évalué avant l'order by ? (genre tout de suite après le WHERE)

    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
    24
    25
     
    WITH t AS 
    (SELECT level l, row_number() over(order by dbms_random.random) r
    FROM DUAL 
    CONNECT BY LEVEL <= 10)
    SELECT rownum, l, r
    FROM t
    ORDER BY l
     
     
        ROWNUM          L          R
    ---------- ---------- ----------
             2          1          2
             4          2          4
             7          3          7
            10          4         10
             8          5          8
             9          6          9
             6          7          6
             5          8          5
             1          9          1
             3         10          3
     
     
    10 rows selected.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Points : 388
    Points
    388

  10. #10
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Ouais mais en y réfléchissant, je pense que la requête de Waldar marche, parce que son second "rownum", est bien celui de la requête après le tri... ça porte un peu à confusion

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 40
    Points : 45
    Points
    45
    Par défaut
    Bonjour :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM charges
    where date_heure_charge_four = ( SELECT max(date_heure_charge_four)
               FROM charges 
               group by date_heure_charge_four)

    Seul inconvénient, retourne toutes les lignes qui ont la même date.

Discussions similaires

  1. Trouver les enregistrements avec les dates les plus récentes
    Par fullmetalalchemiste dans le forum Requêtes
    Réponses: 4
    Dernier message: 17/05/2012, 10h05
  2. Réponses: 1
    Dernier message: 07/07/2009, 14h45
  3. [HQL] recuperer l'objet avec la date la plus recente
    Par snopims dans le forum Hibernate
    Réponses: 6
    Dernier message: 09/01/2009, 10h32
  4. Réponses: 8
    Dernier message: 12/11/2008, 17h07
  5. Réponses: 3
    Dernier message: 17/05/2008, 14h39

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