Я работаю над набором данных SSRS, пытаясь написать запрос DAX, который может фильтровать таблицу в табличной модели на основе пользовательского ввода.Конкретная проблема заключается в том, что я пытаюсь условно создать табличную переменную DAX на основе ввода от пользователя.
Упрощенный пример: скажем, у меня есть таблица в моей табличной модели под названием «Группы» с двумя столбцами «GroupID» и «GroupLabel».Основываясь на входных данных от пользователя, мне нужно создать переменную таблицы (что-то похожее на временную таблицу SQL), которая содержит идентификаторы GroupID из таблицы «Groups», которые соответствуют пользовательскому вводу «GroupLabel».Я успешно выполнил это с помощью следующего:
DEFINE
VAR GroupIDs_Selected =
SUMMARIZE(
CALCULATETABLE(
'Groups',
'Groups'[GroupLabel] = userInput
),
'Group'[GroupID]
)
Однако у нас также есть опция, которую пользователь может выбрать для групп «Все».Таким образом, для этого табличная переменная должна выглядеть примерно так:
DEFINE
VAR GroupIDs_Selected =
SUMMARIZE('Groups', 'Groups'[GroupID])
Кажется, что два приведенных выше определения переменных работают нормально, но моя проблема в том, что я не понялспособ объединить эти два определения переменных условно.Например, следующее определение, которое пытается объединить два вышеупомянутых определения внутри функции IF, не работает для меня:
DEFINE
VAR GroupIDs_Selected =
IF( userInput = "All",
SUMMARIZE('Groups', 'Groups'[GroupID]),
SUMMARIZE(
CALCULATETABLE(
'Groups',
'Groups'[GroupLabel] = userInput
),
'Group'[GroupID]
)
^ Более конкретно, когда я пытаюсь ссылаться на эту условную переменную как таблицу (дляНапример, в выражении EVALUATE) я получаю следующее сообщение об ошибке: «Выражение, указанное в запросе, не является допустимым табличным выражением».
Мой вопрос .. Есть ли что-то, что я упускаю в выражении IF?Может быть, я должен включить функцию, чтобы как-то привести условно возвращаемое значение в виде таблицы?Или это не может быть сделано в операторе присваивания переменной таблицы DAX?Или есть еще один совершенно другой способ обработки такого сценария в табличной модели?
Любая помощь будет принята с благодарностью!