我有一张销售表。该表包含销售的客户编号,日期和金额。 现在,我必须计算以下值-例如使用期间01/01/2019和03/31/2019
所有这些值均按客户编号分组。
我该如何执行表演?在这种情况下可以使用窗口功能吗?
答案 0 :(得分:0)
不幸的是,在这种情况下,不能使用窗口功能,因为您不能使用日期在分区内移动,即,将今天客户的所有销售额加起来减去一个月。我想不可能每天为每个客户进行交易(然后可以使用窗口功能)。我将从这样的事情开始:
select
CustomerNo
,sum(case when [Date] >= '2019-01-01' and [Date] <= '2019-03-31' then Amount else 0 end ) as PeriodTotal
,sum(case when [Date] >= '2018-01-01' and [Date] <= '2018-03-31' then Amount else 0 end ) as PreviousYearPeriodTotal
,sum(case when [Date] >= '2019-01-01' and [Date] <= '2019-12-32' then Amount else 0 end ) as YearTotal
,sum(case when [Date] >= '2018-01-01' and [Date] <= '2018-12-32' then Amount else 0 end ) as PreviousYearTotal
from sales
group by CustomerNo