Récupérer la dernier valeur d'un select
Résolu
JsuisNul
Messages postés
137
Statut
Membre
-
JsuisNul -
JsuisNul -
Bonjour,
Je souhaiterai faire une requête SQL qui me retourne que la dernier valeur d'un select.
j'ai un tableau comme suit :
ID - valeur - periode
Mat1 a MT201301
Mat1 b MT201302
Mat1 c MT201303
Mat1 D MT201304
Mat2 a MT201301
Mat2 b MT201302
Mat2 c MT201303
Mat2 D MT201304
Mat2 E MT201305
Mat2 F MT201306
je voudrais pourvoir récupérer :
pour Mat1 la velaur "D"
et pour le Mat2 la valeur "F"
Si vous quelqu'un a une idée je suis preneur.
Merci d'avance
Je souhaiterai faire une requête SQL qui me retourne que la dernier valeur d'un select.
j'ai un tableau comme suit :
ID - valeur - periode
Mat1 a MT201301
Mat1 b MT201302
Mat1 c MT201303
Mat1 D MT201304
Mat2 a MT201301
Mat2 b MT201302
Mat2 c MT201303
Mat2 D MT201304
Mat2 E MT201305
Mat2 F MT201306
je voudrais pourvoir récupérer :
pour Mat1 la velaur "D"
et pour le Mat2 la valeur "F"
Si vous quelqu'un a une idée je suis preneur.
Merci d'avance
4 réponses
-
Bonjour,
SELECT * FROM tableau WHERE id='Mat2' ORDER BY valeur Desc LIMIT 0,1
A+
-
-
-
La question est dans le forum
Base de données / Oracle
;-)
Le rownum étant défini avant l'order by, il serait préférable de faire
SELECT * FROM ( SELECT * FROM tableau WHERE id='Mat2' ORDER BY valeur Desc ) WHERE ROWNUM < 2
Le demandeur n'ayant pas précisé s'il voulait donner en paramètre l'id ou s'il les voulaient tous d'un coup, la solution de francis0001 me parait plutôt bien.
-
-
Je pense que la requête la plus adaptée serait :
SELECT ID, max(valeur) As valeur, periode
FROM test
GROUP BY ID; -
SELECT id, valeur, periode, LAST_VALUE(valeur) OVER FROM (SELECT * FROM tableau);
-
Bonjour,
La réponse de Francis fonctionne correctement et correspond à ce que je souhaite.
Merci à tous pour votre aide.