{"id":13506,"url":"\/distributions\/13506\/click?bit=1&hash=27fcb5113e18b33c3be66ae079d9d20078d1c30f1b468cdc86ecaeefa18446c2","title":"\u0415\u0441\u0442\u044c \u043b\u0438 \u0442\u0432\u043e\u0440\u0447\u0435\u0441\u0442\u0432\u043e \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438? \u0410 \u0435\u0441\u043b\u0438 \u043d\u0430\u0439\u0434\u0451\u043c?","buttonText":"\u0423\u0436\u0435 \u043d\u0430\u0448\u043b\u0438","imageUuid":"2c16a631-a285-56a4-9535-74c65fc29189","isPaidAndBannersEnabled":false}
IQBI

Конструкция userelationship

В статье мы рассмотрим использование такой конструкции, как Userelationship. При помощи данной функции можно переопределить активную связь на время выполнение запроса, не перестраивая связи в модели.

Пример:

Таблица “Данные по сотрудникам” содержит необходимые сведения о сотрудниках, а именно, ID сотрудника (например, менеджера по закупкам), некое значение (например, количество заказов), ID ответственного лица (пусть это будет куратор соответствующего менеджера):

Таблица “Справочник сотрудников” содержит ID сотрудника, и его фамилию:

Задача:

Подтянуть в таблицу “Данные по сотрудникам” фамилии как сотрудников, так и ответственных лиц.Безусловно есть много неспортивных способов выполнения поступившего запроса (например, с использованием функции Switch, условного столбца в Power Query и пр.), но поскольку это не интересно и не универсально, мы это, не рассматриваем.

Получение значения “Фамилия сотрудника”:

Тут все просто, необходимо настроить нужную связь на уровне модели по полю “ID_Сотрудника”:

Дальше можно переходить непосредственно к созданию расчетного столбца в таблице “Данные по сотрудникам”, используя следующую формулу:

Фамилия_Cотрудника =RELATED ( 'Справочник сотрудников'[Фамилия] )

Затем можно проверить получившийся результат:

Получение значения “Фамилия ответственного”:

Необходимо настроить вторую связь на уровне модели по полю “ID_Ответственного”, при этом то, что она будет неактивной – это нормально:

Дальше можно переходить непосредственно к созданию расчетного столбца в таблице “Данные по сотрудникам”, используя следующую формулу:

Фамилия_Ответственного =CALCULATE (MINX ( 'Данные по сотрудникам', RELATED ( 'Справочник сотрудников'[Фамилия] ) ),ALL ( 'Справочник сотрудников' ),USERELATIONSHIP ( 'Данные по сотрудникам'[ID_Ответственного], 'Справочник сотрудников'[ID_Сотрудника] ))

Затем можно проверить получившийся результат:

0
Комментарии
Читать все 0 комментариев
null