Член по умолчанию (default member)

Как уже упоминалось, что в большинстве случаев в кортежах явно присутствуют не все измерения. Чтобы получить значение меры на кортеже, нужно учесть все прочие измерения. Для этого у каждого измерения существует член по умолчанию. Как правило, в роли Default Member выступает единственный член специального уровня иерархии [All], автоматически создаваемого при создании измерения. Этот уровень содержит совокупные результаты по всему измерению.

Пример:

([Клиенты].[All].Members, [Measures].[Максимальный возраст]) – этот кортеж возвращает возраст самого старшего клиента.

Эквивалентное указание на член по умолчанию можно записать короче и корректнее с помощью выражения DefaultMember:

[Клиенты].DefaultMember.

Если уровень [All] отсутствует, в его роли выступает первый член следующего уровня. Например, для нашего измерения Дата это будет [Дата].[1900], если в кубе нет более ранних годов.

В некоторых системах членом по умолчанию можно назначить любой член или MDX-выражение измерения.

Поскольку совокупность мер ([Measures]) тоже является одним из измерений, то и среди мер есть элемент по умолчанию.

Предположим, что в нашем случае мерой по умолчанию является [Количество клиентов]. Тогда, если из нашего запроса (*) удалить конструкцию WHERE ([Measures].[Количество клиентов]), результат его выполнения останется прежним.

Общий вид запроса

Простейший вид запроса MDX выглядит следующим образом:

SELECT <множество1> ON COLUMNS,

<множество2> ON ROWS

FROM <куб>

WHERE <кортеж>

На каждой из осей (columns, rows и др.) можно располагать несколько измерений, например:

SELECT { CrossJoin ({ [Место].[РФ].[Урюпинск] }, { [Дата].[1970].[Февраль] }) } ON COLUMNS,

{ [Клиенты].Children } ON ROWS

FROM [Наш куб данных]

WHERE ([Тип места].[Место жительства], [Measures].[Количество клиентов])

Этот запрос возвращает всех клиентов, проживающих в Урюпинске, родившихся в феврале 1970г.

Кортежи (множества), указанные на осях и после WHERE, образуют декартово произведение, которое и является результатом выполнения запроса.

Множества, входящие в кортеж после слова WHERE, называются Срезами (Slicers): (Slicer1, …, SlicerN).

Располагать члены одного измерения по разным осям отчета нельзя, такая операция лишена смысла.

Слово CrossJoin не несет логической нагрузки, оно лишь указывает на порядок вывода данных разных измерений.

Функции навигации


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: