DAX STUDIO-使用列var结果作为评估函数的输入

问题描述 投票:1回答:1

在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)
            )

我已经尝试过在不同论坛上提供的一些答案,但是到目前为止,我没有任何可能的解决方案。

问候,

dax var daxstudio
1个回答
0
投票

DEFINE并没有达到您想要的范围。

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)
            )

或者尝试用CUCULATETABLE包装ADDCOLUMNS:

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 )
    )
)
© www.soinside.com 2019 - 2024. All rights reserved.