计算的目的是,我们想要找到所选日期同一天与其前一年相比的销售额。例如,我希望看到2012年1月1日星期日的销售金额。上一年的同一天是2011年7月3日(星期日)。另一个示例是2019年4月30日星期二,其上一年的日期是2019年5月1日
因此,当用户选择一个日期时(假设是2012年7月1日),我们将收到当年的两个价值销售金额,即19703.4831 {求和[AdventureWorksDW2017]中的所有销售额。[dbo]。[FactInternetSales],其中订购日期='20120701 '}和28041.32 {Order Date ='20110703'}
我已经制定了两项措施:
SaleByDay;
SaleByDay:= Calculate(
SUM(FactInternetSales[SalesAmount])
)
SaleByDayPreviousYear;
SaleByDayPreviousYear:=
var MonitorDate = if (
WEEKDAY(DATEADD( DimDate[FullDateAlternateKey],-1, Year)) <= WEEKDAY(DATEADD(DimDate[FullDateAlternateKey], 0, Year)),
DATEADD(DATEADD(DimDate[FullDateAlternateKey],-1, Year), WEEKDAY(DATEADD(DimDate[FullDateAlternateKey], 0, Year))-WEEKDAY(DATEADD(DimDate[FullDateAlternateKey],-1, Year)), Day),
DATEADD(DATEADD(DimDate[FullDateAlternateKey],-1, Year), 7 + WEEKDAY(DATEADD(DimDate[FullDateAlternateKey], 0, Year))-WEEKDAY(DATEADD(DimDate[FullDateAlternateKey],-1, Year)), Day)
)
return(
CALCULATE(
SUM(FactInternetSales[SalesAmount]),
DATESBETWEEN(
DimDate[FullDateAlternateKey],
MonitorDate,
MonitorDate
)
)
)
我希望得到结果
19703.4831 {当用户输入日期为2012年7月1日时,将[AdventureWorksDW2017]中的所有销售金额相加。[dbo]。[FactInternetSales]和28041.32 {Order Date ='20110703'}。