Ваш запрос просто возвращает максимальную дату для положительных значений. Это простой агрегатный запрос:
select nr, sum(value), max(date)
from t
group by nr
having sum(value) > 0;
Однако в описании предлагается кумулятивная сумма, например:
select t.*
from (select t.*, sum(value) over (order by date) as running_value
from t
) t
where running_value > 0;
Это дает те же результаты для данных в вашем вопросе . Однако, похоже, это именно то, о чем вы просите.