使用USERELATIONSHIP在DAX中使用RELATED函数

时间:2013-01-16 19:26:38

标签: business-intelligence tabular dax

我正在尝试使用“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]”列不存在或与当前上下文中可用的任何表没有关系。

1 个答案:

答案 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]
)