SSMS
 sql >> Base de Dados >  >> Database Tools >> SSMS

SQL Daily Outstanding Sales, Rolling Aggregate?


Você pode usar a agregação condicional e uma soma 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;

Isso pressupõe que cada saleId tem no máximo um registro "novo" e um "completo" -- o que faz sentido e é verdadeiro em seus dados de amostra.