SSMS
 sql >> Database >  >> Database Tools >> SSMS

Vendite straordinarie giornaliere di SQL, aggregato mobile?

Puoi utilizzare l'aggregazione condizionale e una somma cumulativa:

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;

Ciò presuppone che ogni saleId ha al massimo un record "nuovo" e uno "completo", il che ha senso ed è vero nei tuoi dati di esempio.