0

我对 DAX 相当陌生,我很好奇 DAX 如何评估多个过滤器参数(如果提供给CALCULATE()CALCULATETABLE().

请考虑以下陈述:

DAX 声明 1:

Net Sales ACT = CALCULATE(
                          SUMX('Fact', 'Fact'[Gross Sales] - 'Fact'[Costs]),
                          FILTER('Fact', 'Fact'[Scenario Key] = LOOKUPVALUE(Scenario[Scenario Key], Scenario[Scenario], "Actual"))
                          )

DAX 声明 2:

Net Sales ACT LY = CALCULATE(
                             [Net Sales ACT],
                             SAMEPERIODLASTYEAR('Date'[Date])
                             )

DAX 声明 3:

Net Sales ACT LY = 

VAR
    v_lookup = FILTER(
                      'Fact',
                      'Fact'[Scenario Key] = LOOKUPVALUE(Scenario[Scenario Key], Scenario[Scenario], "Actual")
                      )

RETURN  -- << why does this chained filter not produce the same results as in statement 2?
        CALCULATE(
                  SUMX('Fact', 'Fact'[Gross Sales] - 'Fact'[Costs]),
                  v_lookup, 
                  SAMEPERIODLASTYEAR('Date'[Date])
                  )

关系:

在此处输入图像描述

生成的结果差异很大,语句 2 给出了正确的输出。我无法弄清楚为什么声明 3 不起作用。

我的问题很简单,为什么 DAX 不会为语句 2 和语句 3 计算相同的值?我的信念是,如果我为这些提供多个过滤器,CALCULATE()它们将应用于相同的filter context. 然而,情况似乎并非如此,这究竟是如何工作的?

谢谢!

4

0 回答 0