sql >> Base de Datos >  >> Database Tools >> SSMS

¿Ventas pendientes diarias de SQL, agregado móvil?

Puede utilizar la agregación condicional y una suma acumulativa:

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;

Esto supone que cada saleId tiene como máximo un registro "nuevo" y uno "completo", lo que tiene sentido y es cierto en sus datos de muestra.