#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» в качестве условия фильтра?