2011-10-03 1 views
1

У кого-нибудь есть советы о том, как построить среднюю меру, которая является динамической, - она ​​не указывает конкретный срез, а вместо этого использует ваш текущий вид? Я работаю во внешнем средстве просмотра OLAP (Strategy Companion), и мне нужна «динамическая» реализация, основанная на измерениях, которые в настоящее время фильтруются в представлении данных.Динамическое использование функции MDX AVG

Мой факт таблица выглядит следующим образом: "[мер] [AmountA]"

Key AmountA IndicatorA AmountB Other Data 
1 5  1   null  25 
2 6  1   null  52 
3 7  1   2  106 
4 null  0   4  108 

Теперь я могу указать простое среднее значение для с «[мер] [AmountA]/[Measures].. [IndicatorA] ", который отлично работает -" [IndicatorA] "суммируется с количеством ненулевых значений" [AmountA] ". И это также отлично работает независимо от того, какие размеры выбраны в представлении - он всегда делит на количество строк, которые были отфильтрованы.

Но как насчет [AmountB]? У меня нет нулевого столбца индикатора. Я хочу получить среднее значение [AmountB] для любых строк, которые были отфильтрованы для моего текущего представления. Если я попытаюсь использовать подсчет строк как простую формулу (psuedo-code "[Measures]. [AmountB]/Count ([Measures]. [Key])") Я получаю неправильный результат, потому что он подсчитывает все нулевые строки в среднем.

Итак, мне нужен способ использования функции AVG, чтобы указать среднее значение [AmountB] по набору «любые строки, в которые я сейчас фильтрую, на основе любых измерений, которые я использую в настоящее время». Как указать этот динамический набор?

Я пробовал несколько различных применений функции AVG, и они либо вернули нуль, либо суммировали до огромных чисел, что явно не в среднем я искал.

Matt Благодарения и

ответ

0

К сожалению, мое первое предложение было неправильно. Если у вас нет доступа к кубу OLAP, вы не можете написать какой-либо mdx-запрос для этой цели (IMHO). Потому что у вас нет подробных данных (из вашей таблицы фактов) на этом уровне доступа, и вы можете использовать только агрегированные данные и размеры из вашего куба. В противном случае (если у вас есть доступ к olap db), вы можете создать эту метрику (количество строк не NULL) в своей группе мер и после этого использовать ее для расчета AVG (в качестве расчетного члена в вашем кубе или в разделе «WITH» в ваш mdx-запрос).

+0

Макс, это близко - теперь я ищу, как указать {Your Set} как динамический набор - не какой-либо конкретный фрагмент, а любой набор, который я сейчас фильтрует с помощью инструмента OLAP. – user977080

+0

Я попытаюсь улучшить этот запрос и обновить ответ в ближайшем будущем. – Max