【问题标题】:How to ignore a relationship in a tabular model如何忽略表格模型中的关系
【发布时间】:2017-11-21 15:19:30
【问题描述】:

我有一个无法解释的问题。考虑以下 DAX 度量:

Actual Spend :=
CALCULATE (
    SUM ( 'Finance Actuals'[Amount] ),
    FILTER (
        ALLSELECTED ( 'Finance Period' ),
        'Finance Period'[Fiscal_Date_Key] <= MAX ( 'Finance Period'[Fiscal_Date_Key] )
    ),
    FILTER (
        'Finance Actuals',
        'Finance Actuals'[Calculated_Date_Key]
            <= MAX ( 'Finance Forecasting Period'[Calculated_Date_Key] )
    ),
    ALL ( 'Finance Calculated Data Snapshot Date' )
)

“财务实际数据”和“财务计算数据快照日期”之间存在关系。出于此度量的目的,我想忽略该关系并使用在不同表中选择的预定义日期(“财务预测期”)。

一切正常,只是该措施仍受到“财务计算数据快照日期”更改的影响。我原以为添加度量的 ALL(“财务计算数据快照日期”)部分应该会导致对该表的更改被忽略。

我做错了什么?

【问题讨论】:

    标签: dax ssas-tabular


    【解决方案1】:

    CALCULATE 函数将使用AND 逻辑应用其过滤器。我猜正在发生的事情是,在'Finance Actuals' 上的FILTER 函数中使用了这种关系,而添加ALL 函数并没有改变任何东西。

    尝试将 ALL 函数移动到第二个 FILTER 函数中,因为这是需要应用它的地方。

    【讨论】:

      【解决方案2】:

      谢谢亚历克西斯。

      我不太确定如何将ALL 添加到定义的第二个过滤器中,因为它们与不同的表相关。但是,根据您的建议,我重新设计了以下措施:

      Actual Spend at Forecasting Period:=CALCULATE (
          SUM ( 'Finance Actuals'[Amount] ),
          FILTER (
              ALLSELECTED ( 'Finance Period' ),
              'Finance Period'[Fiscal_Date_Key] <= MAX ( 'Finance Period'[Fiscal_Date_Key] )
          ),
          FILTER (
              ALL('Finance Calculated Data Snapshot Date'),
              'Finance Calculated Data Snapshot Date'[Calculated_Date_Key]
                  <= MAX ( 'Finance Forecasting Period'[Calculated_Date_Key] )
          )
      )
      

      这工作并达到了我希望的结果,所以感谢您的建议。但是,我仍然很好奇您具体建议的是什么

      尝试将 ALL 函数移到第二个 FILTER 函数中,因为 这就是它需要应用的地方。

      【讨论】:

      • 是的,这基本上就是我的建议。可能有一些变体可行,但是当我没有确切的表和关系时,很难尝试编写 DAX。
      猜你喜欢
      • 1970-01-01
      • 2013-07-24
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 2020-05-03
      • 1970-01-01
      • 2014-02-13
      相关资源
      最近更新 更多