Проверка наличия измерения в многомерных выражениях

Как я могу проверить, существует ли одно измерение на оси в MDX-выражении?

Мне нужно проверить, сколько единиц времени (дней, недель, месяцев ...) существует на оси 1, и использовать их для расчета меры. Вот пример того, что должно произойти, я возьму некоторые размеры:

days -> [Measures].[A] = [Measures].[B] / number of members in axis 1, from only date dimension (365)

months -> [Measures].[A] = [Measures].[B] / number of members in axis 1, from only date dimension (12)

months, product group -> [Measures].[A] = [Measures].[B] / number of members in axis 1, from only date dimension (12)

Таким образом, размер, отличный от размера даты, не должен влиять на расчет. Мне нужно только подсчитать членов из измерения [Дата].


person Kulis    schedule 05.03.2017    source источник


Ответы (1)


Простой пример - подсчет дней:

With
Member [Measures].[Members on rows] AS 
Axis(1).Count 

Select
Non Empty [Measures].[Members on rows] on columns, 
Non Empty [Date].[Day].[Day].Members on rows
From [Sales]
Where [Date].[Month].[Month].&[201701]

Но вы получите только количество строк, вы не можете предсказать, что происходит с осью. Также вы можете проверить, совпадает ли счетчик всего атрибута с количеством атрибутов отчета:

Count(existing [Date].[Day].[Day].Members) = Count([Date].[Day].[Day].Members)

Если он возвращает true, скорее всего, это означает, что вы не используете фильтр иерархии [Дата]. [День] в своем отчете.

person Danylo Korostil    schedule 05.03.2017