Bạn có thể sử dụng tổng hợp có điều kiện và tổng tích lũy:
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;
Điều này giả định rằng mỗi saleId
có nhiều nhất một bản ghi "mới" và một bản ghi "hoàn chỉnh" - điều này có ý nghĩa và đúng trong dữ liệu mẫu của bạn.