Ich würde von Detlefs Code in #6 ausgehen. So wie ich das sehe, wird lediglich einmal zu viel gegroupt. Wenn man nur nach der Fahrzeug-ID und a.Datum gruppiert und zusätzlich noch where a.Datum > b.Datum einfügt, müsste das klappen; statt b.Datum muss dann natürlich MAX(b.Datum) selektiert werden.
SQL-Code:
select a.Fahrzeug_Id, a.Datum, MAX(b.Datum), MIN(a.Datum - b.Datum)
from Schadensfaelle a
join Schadensfaelle b
on b.Fahrzeug_Id = a.Fahrzeug_Id
where a.Datum > b.Datum
group by a.Fahrzeug_Id, a.Datum