Forum: Datenbanken
by DeddyH,
17. Aug 2009
Er möchte in seiner Ergebnismenge die beiden Daten sowie die Differenz haben.
Forum: Datenbanken
by DeddyH,
17. Aug 2009
Da fehlt aber noch B.Datum ;)
Forum: Datenbanken
by DeddyH,
17. Aug 2009
Ich meinte nicht den Join an sich, sondern dessen Bedingung, da diese ja quasi durch die HAVING-Klausel sowieso hineinkommt.
Forum: Datenbanken
by DeddyH,
17. Aug 2009
Nun hab ich sowas ähnliches wie Du (wobei man vermutlich die Join-Bedingung weglassen kann, ich hab es nicht getestet):SELECT A.Datum, B.Datum, MIN(A.Datum - B.Datum)
FROM Schadensfaelle A
JOIN Schadensfaelle B
ON A.Datum > B.Datum
GROUP BY A.Datum, B.Datum
HAVING B.Datum = (
SELECT MAX(Datum) FROM Schadensfaelle
WHERE Datum < A.Datum)
Das MIN kann so vermutlich auch...
Forum: Datenbanken
by DeddyH,
17. Aug 2009
Ausgehend von der Annahme, dass in der Tabelle auch die Fahrzeug-Id hinterlegt ist, könnte man das so machen:
select a.Fahrzeug_Id, a.Datum, b.Datum, MIN(a.Datum - b.Datum)
from Schadensfaelle a
join Schadensfaelle b
on b.Fahrzeug_Id = a.Fahrzeug_Id
group by a.Fahrzeug_Id, a.Datum, b.Datum
Forum: Datenbanken
by DeddyH,
16. Aug 2009
MIN erscheint mir aber geeigneter. Du willst ja den kürzesten zeitlichen Abstand, oder nicht?