#mdx #mondrian
#многомерные выражения #мондриан
Вопрос:
У меня есть простой куб с 2 измерениями: Dim1, Dim2 и одним значением измерения (агрегатор = сумма) Мне нужно получить перекрестную таблицу через многомерные выражения:
select non empty [Dim2].members on 0, non empty [Measures].value on 1
from [cube]
=>
el1 el2 el3 el4
value 12 14 45 64
эти значения агрегируются с помощью dim1. ok.
Затем я создаю вычислительную меру:
with [Measures].value_filter as iif([Measures].value> 15, [Measures].value, null)
select non empty [Dim2].members on 0,
non empty [Measures].value_filter on 1
from [cube]
=>
мы получаем правильный результат:
el3 el4
value 45 64
Но как я могу фильтровать ячейки по неагрегированным значениям [Measures].value, т. Е. Реальным значениям из базы данных?
Ответ №1:
Вы можете фильтровать только по элементам, которые содержатся в измерении. Если вы хотите отфильтровать что-либо, это должно быть доступно в кубе. следовательно, вам потенциально может потребоваться добавить некоторые столбцы в качестве атрибутов к одному из ваших измерений.
Вы должны выполнить фильтрацию следующим образом, предполагая, что вы хотите использовать Член1 иерархии / атрибут Hier2 измерения Dim2 в качестве фильтра:
select non empty [Dim2].members on 0,
[Measures].value on 1
from [cube]
where ([Dim2].[Hier2].[Member1])