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

SQL Tägliche ausstehende Verkäufe, fortlaufendes Aggregat?

Sie können eine bedingte Aggregation und eine kumulative Summe verwenden:

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;

Dies setzt voraus, dass jede saleId hat höchstens einen „neuen“ und einen „vollständigen“ Datensatz – was Sinn macht und in Ihren Beispieldaten zutrifft.