Hallo Leute,
trotz recht guter SQL-Kenntnisse möchte ich um etwas Hilfe bitten. Stellt Euch eine Tabelle "hist" vor, der der zu Maschinen Ereignisse gespeichert sind. Also etwa in dem Stil:
Die Maschine 109 hat also u.a. 3 mal den Standort gewechselt und dann 3 mal eine Einsatzverlängerung bekommen. In der Tabelle sind natürlich auch noch andere Maschinen vorhanden. Es ist auch möglich, daß zu einer Maschine nur die 2. oder nur die 3. Verlängerung bekannt ist.
Nun möchte ich für jede Maschine die neueste Verlängerung abfragen, was mit dieser Abfrage geschieht:
Das funktioniert aber nur, wenn nur maximal eine Verlängerung eingetragen ist. Wenn es 2 oder mehr sind, wird der Satz nicht gefunden.
Wie muß ich die Abfrage modifizieren?
Danke im Voraus!
Zum Gruß
Vacca
trotz recht guter SQL-Kenntnisse möchte ich um etwas Hilfe bitten. Stellt Euch eine Tabelle "hist" vor, der der zu Maschinen Ereignisse gespeichert sind. Also etwa in dem Stil:
Code:
id nr datum typ beschr
1 109 1957-07-30 Standort A
2 109 1957-09-21 Standort B
3 109 1970-05-31 Standort A
137 109 2008-08-06 Verlängerung 1 Schmitz, gültig bis 06.08.2009
363 109 2009-07-29 Verlängerung 2 Müller, gültig bis 29.07.2010
619 109 2010-07-29 Verlängerung 3 Schmitz, gültig bis 25.09.2010
Die Maschine 109 hat also u.a. 3 mal den Standort gewechselt und dann 3 mal eine Einsatzverlängerung bekommen. In der Tabelle sind natürlich auch noch andere Maschinen vorhanden. Es ist auch möglich, daß zu einer Maschine nur die 2. oder nur die 3. Verlängerung bekannt ist.
Nun möchte ich für jede Maschine die neueste Verlängerung abfragen, was mit dieser Abfrage geschieht:
Code:
SELECT hist.nr, hist.datum, hist.typ, beschr
FROM hist
INNER JOIN (
SELECT nr, typ, Max( Datum ) AS max
FROM hist
WHERE typ LIKE 'Verlängerung%'
GROUP BY nr) AS t1
ON hist.nr = t1.nr
AND hist.datum = t1.max
AND hist.typ = t1.typ
Das funktioniert aber nur, wenn nur maximal eine Verlängerung eingetragen ist. Wenn es 2 oder mehr sind, wird der Satz nicht gefunden.
Wie muß ich die Abfrage modifizieren?
Danke im Voraus!
Zum Gruß
Vacca