如何使用DAX计算上一年同一天的销售额(例如:2012年7月1日星期日与2011年7月3日星期日)

时间:2019-05-02 03:35:51

标签: ssas dax

计算的目的是,我们想要找到所选日期同一天与其前一年相比的销售额。例如,我希望看到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'}。

enter image description here

0 个答案:

没有答案