在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)
)
我已经尝试过在不同论坛上提供的一些答案,但是到目前为止,我没有任何可能的解决方案。
问候,
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 )
)
)