2015-02-09 2 views
0

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

Если пользователь выбирает измерение: «Кампания», «Группа объявлений» и «Ключевое слово», набор результатов должен вычислять «% стоимости», как показано ниже. Все «% стоимости» должны содержать до 1. enter image description here

Если пользователь выбирает измерение: «Кампания», результирующий набор должен рассчитывать «% стоимости», как показано ниже. Все «% стоимость» следует добавить до 1.

enter image description here

Как я смог написать формулу расчета куба SSAS, чтобы дать мне возможность динамически рассчитать стоимость% в расчете на сегменте а пользователи выбирают?

У меня есть текущая формула: ([Keyword].[Keyword].CurrentMember, [Measures].[Cost])/ (sum(Axis(1),[Measures].[Cost])). Он работает, но требуется много времени для расчета. Мне интересно, есть ли лучший способ сделать это.

Заранее спасибо.

ответ

0

Что делать, если использовать Parent?

[Measures].[Cost] 
/
(Axis(1).Item(0).Item(0).Hierarchy.CurrentMember.Parent 
,[Measures].[Cost]) 

Это позволяет серверу использовать предварительно рассчитанное значение вместо SUM.

(Я также удалил [Keyword].[Keyword].CurrentMember, так как не вижу причин, чтобы использовать его здесь: если он находится на оси или в качестве фильтра, двигатель будет применять его автоматически)

0

Эта формула работает отлично. Но когда в кубе у вас больше tan two и попробуйте показать их в Excel, он отображает ошибку #value вместо того, чтобы давать результат, а при размещении более двух переменных он работает. Это единственная проблема.

Смежные вопросы