Как вы ранжируете на основе меры, ссылающейся на две таблицы в звездообразной схеме? - PullRequest
1 голос
/ 08 мая 2020

У меня есть модель данных звездообразной схемы. DimDate, DimBranchName, BranchActual, BranchBudget.

У меня есть меры для расчета отклонения с начала года от бюджета по веткам под названием QVar. Qvar берет счетчик из BranchActual и сравнивает его с BranchBudget между двумя датами. Визуал контролируется DimBranchName и DimDate.

Текущий результат:

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

Я хочу, чтобы мера могла ранжировать DimBranchName [BranchName] по QVar, которая будет взаимодействовать с фильтрами, которые у меня есть.

Желаемый результат:

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)

Я получаю все единицы

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

Спасибо!

1 Ответ

0 голосов
/ 09 мая 2020

Когда вы объявляете переменную, она вычисляется один раз и обрабатывается как константа в остальной части вашего DAX-кода, поэтому CALCULATE(V) - это просто то, что V было, когда вы объявили переменную.

Это может быть ближе к тому, что вы хотите:

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

Таким образом, [QVar] вызывается в контексте фильтра BranchName вместо того, чтобы быть константой. (Обратите внимание, что ссылка на меру внутри другой меры неявно заключает ее в CALCULATE, так что вам это больше не понадобится.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...