How does following perform?
SELECT F1.ID, F1.Value, F3.Value
FROM cardevent F1
INNER JOIN (
SELECT F1.ID, mID = MAX(F2.ID)
FROM cardevent F1
INNER JOIN cardevent F2 ON F2.ID < F1.ID
GROUP BY F1.ID
) F2 ON F2.id = F1.ID
INNER JOIN cardevent F3 ON F3.ID = F2.mID
UNION ALL
SELECT F1.ID, F1.Value, 0
FROM cardevent F1
INNER JOIN (
SELECT ID = MIN(ID)
FROM cardevent
) F2 ON F2.ID = F1.ID
ORDER BY 1