Использование связанной функции в DAX с USERELATIONSHIP
Я пытаюсь вытащить поле из другой таблицы в моей модели BISM, используя функцию" RELATED". Поскольку существует много таблиц, имеющих отношение к таблице 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 ответ:
Вот пример использования набора данных 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] ) ) ) ) )
Этот код извлекает календарный год из таблицы дат в таблицу интернет-продаж для каждой из дат в таблице интернет-продаж:
- дата заказа (активная связь)
- Срок выполнения (неактивные отношения)
- дата отгрузки (неактивные отношения)
EDIT : исправлен первый ответ (выше)...Вот хорошая запись о том, почему USERLATIONSHIP не будет работать в этом sceanrio: linky*
LOOKUPVALUE ниже также работает:
=LOOKUPVALUE( People[FullName] ,People[PersonID] ,FollowUps[OwnerID] )