Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 11.docx
Скачиваний:
8
Добавлен:
23.09.2019
Размер:
38.54 Кб
Скачать

Операторы

В MDX используются операторы нескольких типов. Подобно другим языкам, MDX содержит арифметические операторы, логические операторы и специальные операторы MDX.

Арифметические операторы

Обычные арифметические операторы, такие как +, –, * и /, входят в состав

арифметических операторов MDX. Как и в языках программирования, эти операторы могут применяться для выполнения арифметических операций с двумя числами. Операторы + и – также могут использоваться в качестве унарных операторов для чисел.

Операторы набора

Операторы +, – и * помимо того, что являются арифметическими операторами, также могут использоваться для выполнения операций с наборами кортежей MDX.

  • Оператор + применяется для объединения двух наборов

Результатом следующего выражения MDX

{[Customer].[Country].[Australia]} + {[Customer].[Country].[Canada]}

является объединение двух наборов, приведенное ниже.

{[Customer].[Country].[Australia], [Customer].[Country].[Canada]}

  • оператор – используется для вычисления разности двух наборов

  • оператор * позволяет найти векторное произведение двух наборов. Результатом векторного произведения двух наборов являются все возможные комбинации кортежей в каждом наборе. Векторное произведение позволяет извлечь данные в матричном формате.

Например, если имеются два набора {матанализ, дискретка} и {3, 4, 5}, то результатом векторного произведения этих двух наборов, представленного как {матанализ, дискретка}*{3, 4, 5} будет набор {( матанализ, 3), (матанализ, 4), (матанализ,5), (дискретка, 3), (дискретка, 4), (дискретка, 5)}.

Результатом следующего выражения MDX

{[Пункт назначения].[РФ].[Воронеж], [Пункт назначения].[РФ].[Москва]}*{[Авиакомпания].[Аэрофлот],[Авиакомпания].[Полет]}

является векторное произведение двух наборов, приведенное ниже…

Операторы сравнения

Язык MDX поддерживает такие операторы сравнения, как <, <=, >, >=, = и <>.

Эти операторы используют два выражения MDX в качестве аргументов и возвращают значения TRUE (Истина) или FALSE (Ложь).

Count ([Пункт назначения].[РФ].[Москва].members) > 3

Логические операторы

Язык MDX поддерживает следующие логические операторы:

  • AND - логической конъюнкции (операция И),

  • OR - логической дизъюнкции (операция ИЛИ),

  • XOR - исключа́ющее и́ли, строгая дизъюнкция,

  • NOT - логического отрицания

  • IS – сравнения

Эти операторы используют два выражения MDX в качестве аргументов и возвращают значение TRUE или FALSE как результат логической операции.

Специальные операторы mdx — фигурные скобки и двоеточия

В фигурные скобки ({}) заключается кортеж или несколько кортежей, чтобы сформировать набор MDX. В том случае, когда используется один кортеж, фигурные скобки не обязательны, поскольку Analysis Services автоматически преобразует единственный кортеж в набор. Если же необходимо представить в виде набора несколько кортежей или вы имеете дело с пустым набором, то в таком случае требуется использовать фигурные скобки.

Символ двоеточия (:) используется для определения диапазона членов внутри набора. Члены внутри набора упорядочиваются на основе ключа или имени члена, в зависимости от того, что было задано при создании набора. Символ двоеточия используется между двумя непоследовательными членами в наборе, чтобы включить все остальные расположенные между ними члены.

Предположим, что имеется приведенный ниже набор.

{[Customer].[Country].[Australia], [Customer].[Country].[Canada], [Customer].[Country].[France], [Customer].[Country].[Germany], [Customer].[Country].[United Kingdom], [Customer].[Country].[United States]}

В таком случае результатом приведенного ниже выражения MDX

{[Customer].[Country].[Canada] : [Customer].[Country].[United Kingdom]}

будет следующий набор.

{[Customer].[Country].[Canada], [Customer].[Country].[France], [Customer].[Country].[Germany], [Customer].[Country].[United Kingdom]}