Récupérer la dernier valeur d'un select

Résolu
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

4 réponses

  1. Bonjour,

    La réponse de Francis fonctionne correctement et correspond à ce que je souhaite.

    Merci à tous pour votre aide.
    0
    1. Je pense que la requête la plus adaptée serait :

      SELECT ID, max(valeur) As valeur, periode
      FROM test
      GROUP BY ID;
      1
      1. Bonjour,

        SELECT * FROM tableau 
        WHERE id='Mat2'
        ORDER BY valeur Desc
        LIMIT 0,1
        

        A+
        1
        1. Modérateur
          Bonjour,

          LIMIT n'existe pas avec le sql d'Oracle.

          cdlt
          0
        2. vous avez pas parlé de ORACLE dans le message d'origine. Donc, faire:

          SELECT * FROM tableau 
          WHERE id='Mat2'
             AND ROWNUM <2
          ORDER BY valeur Desc
          0
        3. Modérateur
          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.
          0
      2. SELECT id, valeur, periode, LAST_VALUE(valeur) OVER FROM (SELECT * FROM tableau);
        0