J'aimerai isoler la ligne d'une table qui contient une colone date_heure (au format date) 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 ?
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;
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.
Que voulez vous savoir ?
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
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
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.
c'est un classique de la FAQ
http://oracle.developpez.com/faq/?page=3-1#rownum
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![]()
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager