DAX ищет значение в другой таблице на основе меры, находящейся между 2 столбцами в таблице поиска - PullRequest
0 голосов
/ 28 апреля 2018

У меня есть табличная модель, в которой мы рассчитываем оценку для метрики. Оценка производительности является мерой в модели. Результирующий набор запроса выглядит примерно так:

MetricID|PerformanceScore 1 50 2 30 На основании оценки мы присваиваем баллы в зависимости от того, в какой диапазон попадает оценка эффективности. Таблица результатов выглядит следующим образом:

Metric|LowRange|HighRange|Points 1 0 60 1 1 60 100 2 2 0 15 1 2 15 100 2

Я хочу иметь возможность добавить меру в модель, которая позволила бы нам вернуть это:

MetricID|PerformanceScore|Points 1 50 1 2 30 2 Что бы создать эту меру?

1 Ответ

0 голосов
/ 30 апреля 2018

Я предполагаю, что ваши таблицы имеют имена Performance и Ranges и имеют отношение к столбцам MetricID = Metric.

Вы должны иметь возможность создать вычисляемый столбец, который извлекает соответствующее значение Points в первой таблице, Performace следующим образом:

Points = MAXX(
             FILTER(RELATEDTABLE(Ranges),
                 Ranges[LowRange] <= Performance[PerformanceScore] &&
                 Ranges[HighRange] > Performance[PerformanceScore]),
             Ranges[Points])

Если вы хотите сделать это как меру, попробуйте следующее:

PointsMeasure = MAXX(
                    FILTER(RELATEDTABLE(Ranges),
                        Ranges[LowRange] <= MAX(Performance[PerformanceScore]) &&
                        Ranges[HighRange] > MAX(Performance[PerformanceScore])),
                    Ranges[Points])

Мне нравится использовать переменную, чтобы сделать ее более читабельной:

PointsMeasure =
    VAR Score = MAX(Performance[PerformanceScore])
    RETURN MAXX(
               FILTER(RELATEDTABLE(Ranges),
                   Ranges[LowRange] <= Score &&
                   Ranges[HighRange] > Score),
               Ranges[Points])
...