6

我正在尝试使用“相关”函数从我的 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]”要么不存在,要么与当前上下文中可用的任何表都没有关系。

4

1 回答 1

4

这是使用 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 Sales 表中的每个日期从 Date 表中提取 Calendar Year 到 Internet Sales 表:

  • 订单日期(有效关系)
  • 截止日期(非活动关系)
  • 发货日期(非活动关系)

编辑:更正了第一反应(上图)...这里很好地说明了为什么 USERRELATIONSHIP 在这个场景中不起作用:linky *

下面的 LOOKUPVALUE 也可以:

=LOOKUPVALUE(
     People[FullName]
    ,People[PersonID]
    ,FollowUps[OwnerID]
)
于 2013-01-17T12:41:29.267 回答