SQl Abfrage Neuste Datum



  • Hallo,

    ich möchte ein Abfrage erstelle das mir den Datensatz mit dem neusten Datum darstellt

    Select feld1 from Tabelle1

    Gibt mir jetzt 9 Datensätze zurück

    Jetzt gibt es noch ein feld datum. Wie bekomme ich das hin, das ich jetzt nur den Datensatz mit dem neusten Datum bekomme?



  • welche Datenbank verwendest du denn?

    bei MySQL

    Select feld1 from Tabelle1 order by Datum desc limit 1
    

    bei MSSQL

    Select top 1 feld1 from Tabelle1 order by Datum desc
    


  • Verwende momentan Access und später oracle...



  • Bei Access dürfte es auch "top (zahl)" heißen, bei Oracle scheint das nur über RowNum zu gehen. Da mußt du mal in der Docu nachschaun.

    Oder du verwendest eine Aggregatfunktion wie z.B. Max auf die Datumsspalte und das in Kombination mit einem Subquery, da die meisten DBMS keine Aggregatfunktionen in der where-Klausel mögen.



  • Linnea schrieb:

    ..., bei Oracle scheint das nur über RowNum zu gehen...

    Wobei darauf zu achten ist, das Oracle die "RowNum" schon vor dem Sortieren vergibt, weshalb man das Ganze schachteln müsste:

    select * from
    ( select * from tabelle order by datum desc )
    where rownum = 1
    

    Das ist natürlich auch nicht besonders schnell.



  • SELECT *
    FROM   table
    WHERE  datum = (SELECT MAX(datum) FROM table)
    

Anmelden zum Antworten