Matti Mäkitalo: Jeweils bestimmten Wert finden für Spalte

Beitrag lesen

Hi,

Wie lautet eine Abfrage in SQL, wenn man aus diesen Daten
id datum
für jede ID jeweils das letzte Datum vor dem 01.03.13 finden will?

Selektiere als ersten Wert eindeutige IDs (distinct). Als zweiter kommt eine korrelierte Subquery zum Einsatz. Die findet eingeschränkt auf die ID aus der Hauptquery alle Datensätze, die kleiner sind als dein Datum. Absteigend sortiert und limitiert auf 1 hast du dein Davor-Datum.

Vielleicht verstehe ich es falsch... aber ich würde den Datensatz zunächst auf alle Zeilen eingrenzen, deren Datum vor dem 01.03.13 ist, und dann nach id gruppieren und den Datumseintrag wählen, das am größten ist.

  
SELECT id, MAX(datum)  
FROM mytable  
WHERE datum < '2013-03-01'  
GROUP BY id  

Halte _ich_ für einfacher, als hier mit korrelierten Unterabfragen zu arbeiten.

Bis die Tage,
Matti