如何使用DAX筛选一个维度表中的值大于另一维度表中值的事实数据表



我有一个带有两个链接维度表的事实表。我正在尝试编写一个DAX过滤器,根据一维表中的日期是否大于来过滤事实表

与此类似的东西(尽管显然这不起作用(。

CALCULATE ( SUM ( factFinancial[Value] ), dimOne[Date1] > dimTwo[Date2] )

如有任何帮助,将不胜感激

如果没有具体的示例,很难回答,但我怀疑您可以找到以下解决方案:

CALCULATE (
SUM ( factFinancial[Value] ),
FILTER ( factFinancial, RELATED ( dimOne[Date1] ) > RELATED ( dimTwo[Date2] ) )
)

计算函数无法评估您的表达式,原因是:

  1. 在评估算法期间,CALCULATE无法确定条件是否应替换dimOne[Date1]、dimTwo[Date2]上的任何现有过滤器,或者不替换它们中的任何一个。

  2. 行上下文不会自动与关系交互,这意味着表达式dimOne[Date1]>dimTwo[Date2]是在行上下文中计算的,两列[Date1]和[Date2]来自两个不同的表,因为我们无法自动访问从[Date2]到[Date1]上每个日期的对应日期。在这种情况下,必须使用RELATEDTABLE和RELATEDTableDAX函数。

为了实现您的目标,您必须使用过滤器相关功能。

使用此代码来创建实际度量财务表:

CALCULATE(SUM (factFinancial[Value]), 
FILTER(factFinancial,RELATED(dimOne[Date1]) > RELATED(dimTwo[Date2])))

访问:https://www.sqlbi.com/blog/marco/2010/01/03/how-calculate-works-in-dax/

访问:https://www.microsoftpressstore.com/articles/article.aspx?p=2449191&seqNum=5

最新更新