Как конвертировать SQL-запрос в DAX? - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь преобразовать запрос SQL в DAX, чтобы я мог создать защиту на уровне строк (выражение DAX для табличного фильтра) в своем отчете Power BI.

Я пытаюсь проверить, равен ли пользователь указанному мной И в указанной мной стране.

SELECTCOLUMNS(Dim_Unit, “Country”, Username() = 'P\andy.v', AND ( “Country”, "Germany" ))

Я устал от вышеупомянутого, но я не понимаю синтаксис DAX (https://dax.guide/selectcolumns/, используя это как руководство для замены SQL-запроса)

Вот что я должен повторить:

SELECT      DISTINCT Country
    FROM        dbo.Dim_Unit
    WHERE       (@UserID IN ('P\andy.vy', 'C\avanston', 'P\gregy.dy', 'PR\ARah', 'PR\fes', 'P\gwen.l'))
            OR  (@UserID IN ('P\liz.trum', 'C\ltrumitch2') AND Country IN ('USA', 'Canada'))
            OR  (@UserID IN ('P\ant.fischer') AND Country IN ('Germany'))
            OR  (@UserID IN ('C\dshorney') AND Country IN ('Singapore', 'Malaysia', 'Hong Kong', 'Indonesia'))
            OR  (@UserID IN ('C\mmillard', 'C\mmillard-ext') AND Country IN ('Australia'))
            OR  (@UserID IN ('C\emarkiyewicz') AND Country NOT IN ('USA', 'Canada'))

    ORDER BY    Country

Ожидаемый результат состоит в том, что Power BI сможет отображать правильные данные для правильного человека на основе указанной страны, пользователи без назначенной страны могут видеть все данные.

1 Ответ

0 голосов
/ 24 мая 2019

Вместо этого создайте таблицу или запрос, который возвращает (UserId, Country) для всех разрешенных пар. Импортируйте этот запрос в виде таблицы с именем UserCountry_RLS, задайте для него связь с таблицей Country с двунаправленной перекрестной фильтрацией, поместите в нее простой фильтр DAX RLS и скройте его от пользователей отчетов.

...