Фильтр многомерных выражений по фиксированному значению в зависимости от уровня иерархии

#ssas #mdx

#ssas #многомерные выражения

Вопрос:

Мне нужно создать именованный набор с многомерными выражениями, который целый год сообщает мне, какие большие записи. Я не могу поделиться своими данными, поэтому я буду использовать пример продаж.

Все торговые представители. необходимо ввести их номера продаж в приложении, и поверх этой базы данных настроен куб. Одна из целей — найти странное поведение продаж в этом кубе. Это означало бы, что торговый представитель, который продает 100 тыс. каждый год, внезапно продает только 30 тыс. в год.

Я создал динамический набор, который позволяет мне фильтровать по этому с помощью вычисляемого элемента с именем ‘qualifies’. Это квалифицируется определяется следующим образом. (Разница вычисляется раньше)

 CREATE MEMBER Currentcube.qualifies AS iif(abs([Diff]) > 50000, 1, NULL),DISPLAY_FOLDER = 'Check big difference';
  

Таким образом, эту проверку можно использовать для фильтрации всех торговых представителей, у которых разница в продажах составляет 50 тыс.

Когда я добавляю другой фильтр в свой куб, например, регион, порог в 50 тыс. Никогда не будет превышен, потому что ни у одного органа не более 50 тыс. продаж в одном регионе. Я хочу сделать 50K динамическим на основе моего предложения where в моем фильтре.

Мой вопрос в том, возможно ли это? Я довольно новичок в многомерных выражениях, поэтому, если это простой вопрос, пожалуйста, простите меня. Я пробовал много разных сценариев, но ни один из них не дал желаемого результата. Я искал в Интернете, но этот конкретный сценарий не прошел в моих результатах поиска.

Комментарии:

1. Вместо фильтрации по абсолютной разнице, такой как 50k, почему бы не использовать процентную разницу. В сочетании с функцией ParallelPeriod вы должны иметь возможность показывать различия для любого запроса. Если вам нужна дополнительная помощь в написании этого многомерного выражения, дайте мне знать.

2. Да, это правда, я думал изменить свой пример. Мне также нужно отфильтровать крупных рыб, когда кто-то продает 2000, а годом ранее только 1000, эти данные не интересны, потому что абсолютное значение слишком мало

3. Это достаточно справедливо. Вы также можете написать элемент, который игнорирует текущий контекст запроса и вычисляет только на требуемом вам агрегированном уровне, поэтому он все равно покажет вам правильные результаты независимо от того, как вы фильтруете.

4. можете ли вы углубиться в это, я действительно не понимаю, что вы говорите

5. @jelle Почему бы не объединить подход и использовать что-то вроде «процентная разница> 10% и абсолютная разница> 10000» в качестве условия фильтра?