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)