SQL每日杰出销售额,滚动汇总?

问题描述 投票:0回答:1

[使用下面的测试数据,我试图显示同事未进行多少销售,未完成的销售是仍显示为“新”的任何记录,我一直在使用以下内容进行识别。

select saleID, count(*) group by saleID having count(*)=1

我遇到的麻烦是,我发现很容易显示overall仍有多少未完成to date,但我不知道如何显示三天前有多少未完成的发言。想法是,当每天绘制图表时,这将显示一种趋势,该趋势将突出显示到每天结束时未完成销售额是否增加/减少。理想情况下,输出将遵循以下内容

   Date      VolumeOutstanding 
2020-01-01    0
2020-01-02    1
2020-01-03    3
2020-01-04    2    

DataSet

SaleID   Date         Outcome
1        2020-01-01   New
1        2020-01-01   Complete
2        2020-01-01   New
2        2020-01-02   Complete
3        2020-01-03   New
4        2020-01-03   New
5        2020-01-03   New
5        2020-01-04   Complete
sql tsql ssms
1个回答
0
投票

您可以使用条件聚合和累计和:

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;
© www.soinside.com 2019 - 2024. All rights reserved.