您如何根据引用星型模式中两个表的度量进行排名?

How do you rank based on a measure referencing two tables in a star schema?

我有一个星型模式数据模型。 DimDate、DimBranchName、BranchActual、BranchBudget。

我有一些措施来计算 YTD 与 Budget by Branch 的差异,称为 QVar。 Qvar 从 BranchActual 中获取计数并将其与两个日期之间的 BranchBudget 进行比较。视觉对象由 DimBranchName 和 DimDate 控制。

当前结果:

BranchName    YTDActual    YTDBudget    QVar
A             100          150          (33%)
B             200          200           0.0%
C             25           15            66%  

我想要一个能够按 QVar 对 DimBranchName[BranchName] 进行排名的度量,它将与我现有的过滤器进行交互。

想要的结果:

BranchName    YTDActual    YTDBudget    QVar     Rank
A             100          150          (33%)     3
B             200          200           0.0%     2
C             25           15            66%      1

到目前为止我尝试过的是

R Rank of Actual v Goal = 
var V = [QVar]
RETURN
RANKX(ALLSELECTED('BranchActual'),CALCULATE(V),,ASC,Dense)

我得到的全是1

BranchName    YTDActual    YTDBudget    QVar     Rank
A             100          150          (33%)     1
B             200          200           0.0%     1
C             25           15            66%      1

谢谢!

当你声明一个变量时,它被计算一次并在你的 DAX 代码的其余部分被视为一个常量,所以 CALCULATE(V) 就是你声明变量时 V 的任何内容。

这可能更接近您想要的:

R Rank of Actual v Goal =
RANKX ( ALLSELECTED ( DimBranchName[BranchName] ), [QVar],, ASC, DENSE )

这样 [QVar]BranchName 的过滤器上下文中被调用而不是常量。 (请注意,在另一个度量中引用一个度量会将其隐式包装在 CALCULATE 中,因此您不再需要它。)