Можете да използвате условно агрегиране и кумулативна сума:
select date,
sum(sum(case when outcome = 'New' then 1
when outcome 'Complete' then -1
else 0
end)
) over (order by date) as VolumeOutstanding
from t
group by date
order by date;
Това предполага, че всеки saleId
има най-много един „нов“ и един „пълен“ запис – което има смисъл и е вярно във вашите примерни данни.