我正在尝试使用“RELATED”函数从我的BISM模型中的另一个表中提取字段。由于有许多表与People表有关系,因此只有一个关系处于活动状态,其余关系处于非活动状态。在这种情况下,关系是非活动的,据我所知,我将使用“USERELATIONSHIP”函数来指定要使用的关系。基于我在此处找到的内容:http://connect.microsoft.com/SQLServer/feedback/details/730493/powerpivot-dax-method-related-does-not-work-if-key-is-inactive 我以为我能做到这一点:
=CALCULATE(RELATED(People[FullName]]),USERELATIONSHIP(Def[OwnerID],People[PersonID]))
但我收到错误:
“People [FullName]”列不存在或与当前上下文中可用的任何表没有关系。
答案 0 :(得分:2)
以下是使用AdventureWorksDW数据集的示例...
EVALUATE(
CALCULATETABLE(
ADDCOLUMNS(
'Internet Sales'
,"Order Calendar Year"
,CALCULATE(VALUES('Date'[Calendar Year]))
,"Ship Calendar Year"
,CALCULATE(
VALUES('Date'[Calendar Year])
,FILTER(
'Date'
,'Date'[DateKey] = 'Internet Sales'[ShipDateKey]
)
)
,"Due Calendar Year"
,CALCULATE(
VALUES('Date'[Calendar Year])
,FILTER(
'Date'
,'Date'[DateKey] = 'Internet Sales'[DueDateKey]
)
)
)
)
)
此代码将“日历年”从“日期”表中提取到“Internet销售”表中每个日期的“Internet销售”表:
编辑:更正了第一个回复(上图)...这里有一个很好的说明,为什么USERRELATIONSHIP在这个场景中不起作用:linky *
下面的LOOKUPVALUE也适用:
=LOOKUPVALUE(
People[FullName]
,People[PersonID]
,FollowUps[OwnerID]
)