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

SQL dagligt fremragende salg, rullende aggregat?

Du kan bruge betinget aggregering og en kumulativ sum:

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;

Dette forudsætter, at hvert saleId har højst én "ny" og én "komplet" post -- hvilket giver mening og er sandt i dine eksempeldata.




  1. Sådan eksporteres fil i .dat- eller .txt-format ved hjælp af php

  2. SSIS script opgave mislykkedes version 15.0 script?

  3. Fejlretning i SQL Management Studio 2012

  4. DBeaver Twitter