; with cte as
(
select *, rn = row_number() over (partition by ID order by eventsdate desc)
from Events
)
select c.ID, Events = sum(case when rn = 1 then Events else -Events end)
from cte c
where c.rn <= 2
group by c.ID
having count(*) = 2
select a.id,sum(case when Row_Num=1 then events else events*-1 end)events from(
select ,row_number() over (partition by id order by eventsdate desc )Row_Num from Events)a
WHERE Row_Num<=2
group by id having count()=2