DAX STUDIO - Использование результата столбца var в качестве входных данных для функции оценки - PullRequest
1 голос
/ 04 февраля 2020

В DAX Studio я оцениваю следующий код:

EVALUATE
ADDCOLUMNS  (
            'Parent Child',
            "Path",PATH('Parent Child'[EmployeeKey],'Parent Child'[ParentEmployeeKey]),
            "Path Length", PATHLENGTH(PATH('Parent Child'[EmployeeKey],'Parent Child'[ParentEmployeeKey])),
            "Path Item", PATHITEM(PATH('Parent Child'[EmployeeKey],'Parent Child'[ParentEmployeeKey]), 3)
            )

Я получаю правильный результат. Тем не менее, мне интересно, смогу ли я реализовать что-то вроде этого:

DEFINE 
VAR p = PATH('Parent Child'[EmployeeKey],'Parent Child'[ParentEmployeeKey])
EVALUATE
ADDCOLUMNS  (
            'Parent Child',
            "Path",p,
            "Path Length", PATHLENGTH(p),
            "Path Item", PATHITEM(p, 3)
            )

Я пробовал некоторые ответы, представленные на разных форумах, но до сих пор не могу найти какое-либо возможное решение.

С уважением,

1 Ответ

0 голосов
/ 04 февраля 2020

DEFINE не go так глубоко, как вы хотите.

https://www.sqlbi.com/articles/defining-variables-in-dax-queries/

Когда определение переменной следует за оператором EVALUATE, ее областью действия является только табличное выражение, на которое ссылается оператор EVALUATE.

Вы можете определить переменную в каждом операторе EVALUATE. У меня нет ваших образцов данных, поэтому я не могу проверить их:

EVALUATE
VAR p = PATH('Parent Child'[EmployeeKey],'Parent Child'[ParentEmployeeKey])
RETURN
ADDCOLUMNS  (
            'Parent Child',
            "Path",p,
            "Path Length", PATHLENGTH(p),
            "Path Item", PATHITEM(p, 3)
            )

В качестве альтернативы попробуйте обернуть ADDCOLUMNS с CALCULATETABLE:

https://blog.learningtree.com/excel-2016-dax-variables/

DEFINE
    VAR p =
        PATH ( 'Parent Child'[EmployeeKey], 'Parent Child'[ParentEmployeeKey] )
EVALUATE
CALCULATETABLE (
    ADDCOLUMNS (
        'Parent Child',
        "Path", p,
        "Path Length", PATHLENGTH ( p ),
        "Path Item", PATHITEM ( p, 3 )
    )
)
...