【问题标题】:DAX Query - EARLIER() - Compare with previous QuarterDAX 查询 - EARLIER() - 与上一季度比较
【发布时间】:2017-10-24 13:42:28
【问题描述】:

我尝试在 DAX 中对多个 Quarter 进行比较。

在我们的例子中,我们使用带有平面表格的 Power Pivot 作为源。 (无星型)

这是一个小例子:

我们的源代码如下所示:

这就是我们现在所拥有的:

这是我们的预期结果:

我尝试用 EARLIER() 和 EARLIEST() 函数做一些事情,但它肯定不好。 (如 MDX LAG() 函数)。 在我们的具体情况下,我们没有明确的日期,我不确定是否可以使用 ParallelPeriod 函数

SumValuePrevious:=CALCULATE
(
  SUM(Data[Value]);
  FILTER(ALL(Data[Quarter]);
  SUMX
   (
           FILTER(Data; EARLIEST(Data[Quarter]) = Data[Quarter] )
           ; 
           [Value]
   )
)
)

但我得到相同的结果:

你有什么可以帮助我的吗?
非常感谢您的帮助,
阿诺

【问题讨论】:

    标签: powerpivot dax ssas-tabular


    【解决方案1】:

    处理日期的最佳方法是添加日期表。 那么你可以使用默认的日期函数

    Previous Quarter:= CALCULATE(SUM(myTable[myColumn]), PREVIOUSQUARTER('Date'[Date])) 
    

    添加日期表:

    Date =
    ADDCOLUMNS (
    CALENDAR (DATE(2000;1;1); DATE(2025;12;31));
    "DateAsInteger"; FORMAT ( [Date]; "YYYYMMDD" );
    "Year"; YEAR ( [Date] );
    "Monthnumber"; FORMAT ( [Date]; "MM" );
    "YearMonthnumber"; FORMAT ( [Date]; "YYYY/MM" );
    "YearMonthShort"; FORMAT ( [Date]; "YYYY/mmm" );
    "MonthNameShort"; FORMAT ( [Date]; "mmm" );
    "MonthNameLong"; FORMAT ( [Date]; "mmmm" );
    "DayOfWeekNumber"; WEEKDAY ( [Date] );
    "DayOfWeek"; FORMAT ( [Date]; "dddd" );
    "DayOfWeekShort"; FORMAT ( [Date]; "ddd" );
    "Quarter"; "Q" & FORMAT ( [Date]; "Q" );
    "YearQuarter"; FORMAT ( [Date]; "YYYY" ) & "/Q" & FORMAT ( [Date]; "Q" )
    )
    

    将您的日期表标记为日期表 将源中的 Quarter 列替换为该季度的第一个日期。 在两个表之间创建关系。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多