[SQL] Abfrage nach jüngstem Ereignis?

Vacca

Cadet 4th Year
Registriert
Apr. 2007
Beiträge
78
Hallo!

Problem gelöst

Ich brauche Hilfe mit einer SQL-Abfrage. Folgendes Beispiel: Liste mit Häusern, über die verschiedene Ereignisse gepeichert werden. Das sieht dann so aus.
Code:
Nr, Datum, Ereignis, Beschreibung
4,  2000-01-01, Abnahme, ok
4,  2001-02-02, Verkauf, Müller
[COLOR="Red"]4,  2005-07-22, Verkauf, Schmidt[/COLOR]
9,  1999-09-20, Anstrich, rot
[COLOR="red"]9,  2007-11-13, Verkauf, Berger[/COLOR]
Was ich nun möchte, ist pro Nr. eine Liste der jüngsten Verkäufe, die so aussieht (also die oben rot markierten Einträge):
Code:
4,  2005-07-22, Verkauf, Schmidt
9,  2007-11-13, Verkauf, Berger
Mit diesem SQL-Statement bekomme ich allerdings das richtige Datum pro Nr., die Beschribung entspricht allerdings dem ersten auftreten.
Code:
SELECT nr, max(datum), ereignis, beschreibung
FROM haus
WHERE typ='Verkauf' 
GROUP BY nr
Hat da jemand eine Idee?

Gruß, der Vacca
 
Zuletzt bearbeitet:
probier's mal hiermit:
Code:
SELECT nr, datum, ereignis, beschreibung
  FROM haus
 WHERE typ = 'Verkauf'
 ORDER BY datum DESC
 LIMIT 1;
Falls bei deinem Datenbank-System das LIMIT 1 nicht unterstützt wird, dann lass es einfach weg, geh durch das Abfrage-Ergebnis und bearbeite nur den ersten Datensatz.
 
Cobinja schrieb:
probier's mal hiermit:
Code:
SELECT nr, datum, ereignis, beschreibung
  FROM haus
 WHERE typ = 'Verkauf'
 ORDER BY datum DESC
 LIMIT 1;
Falls bei deinem Datenbank-System das LIMIT 1 nicht unterstützt wird, dann lass es einfach weg, geh durch das Abfrage-Ergebnis und bearbeite nur den ersten Datensatz.
Hallo Cobninja,
das bringt nur einen Datensatz. :(Ich brauche ja pro Nummer den neuesten Verkauf .

Vacca
 
Sooo, habe das Problem lösen können. Man muß einen Inner-Join machen.

Vacca
 
Zurück
Oben