Если я правильно понял, вы хотите накапливать баллы по периодам, в которых оценка постоянна. Это немного сложно, потому что может потребоваться арифметика даты c, которая зависит от базы данных. Идея состоит в том, чтобы развернуть значения и использовать функции агрегирования и окна:
with tt as (
select userid, score, startdate as dte
from t
union all
select userid, -score, enddate as dte
from t
) t
select userid, sum(sum(score)) over (partition by userid order by (dte)) as score,
dte, lead(dte) over (partition by userid order by dte)
from tt
group by userid, dte