Поделиться через


Инструкция CREATE MEMBER (многомерные выражения)

Изменения: 12 декабря 2006 г.

Создает вычисляемый элемент.

Синтаксис

CREATE [ SESSION ] [HIDDDEN] [ CALCULATED ] MEMBER CURRENTCUBE | Cube_Name.Member_Name 
      AS MDX_Expression
      [,Property_Name = Property_Value, ...n]
......[,SCOPE_ISOLATION = CUBE]

Аргументы

  • Member_Name
    Допустимое строковое выражение, возвращающее имя элемента. Укажите полное имя, чтобы создать элемент в измерении, отличном от измерения мер. Если этого не сделать, элемент будет создан в измерении мер.
  • MDX_Expression
    Допустимое многомерное выражение.
  • Property_Name
    Допустимое строковое выражение, представляющее имя свойства вычисляемого элемента.
  • Property_Value
    Допустимое скалярное выражение, представляющее значение свойства вычисляемого элемента.

Замечания

Инструкция CREATE MEMBER определяет вычисляемые элементы, которые доступны для всего сеанса и могут использоваться в нескольких запросах в данном сеансе. Дополнительные сведения см. в разделе Создание вычисляемых элементов с областью действия сеанса (многомерные выражения).

Можно также определить вычисляемый элемент для использования только в одном запросе. Для определения вычисляемого элемента, ограниченного рамками одного запроса, используется предложение WITH в инструкции SELECT. Дополнительные сведения см. в разделе Создание вычисляемых элементов с областью действия запроса (многомерные выражения).

Аргумент Property_Name может относиться к стандартным или дополнительным свойствам вычисляемого элемента. Стандартные свойства элементов перечислены далее в этом разделе. Вычисляемые элементы, созданные инструкцией CREATE MEMBER без значения SESSION, имеют сеансовую область. Кроме того, строки в определениях вычисляемых элементов разделяются двойными кавычками. В OLE DB определен другой метод, указывающий, что строки должны разделяться одиночными кавычками.

При указании куба, отличного от текущего подключенного куба, возникает ошибка. Поэтому для обращения к текущему кубу вместо указания имени куба рекомендуется использовать переменную CURRENTCUBE.

Дополнительные сведения о свойствах элементов, определенных в OLE DB, см. в документации OLE DB.

Стандартные свойства

У каждого вычисляемого элемента есть набор стандартных свойств. При подключении клиентского приложения к службам Microsoft SQL Server 2005 Analysis Services (SSAS) стандартные свойства либо поддерживаются, либо доступны для поддержки по выбору администратора.

Дополнительные свойства могут быть доступны в зависимости от определения куба. Следующие свойства отражают сведения, относящиеся к уровню измерения в данном кубе.

Идентификатор свойства Значение

SOLVE_ORDER

Порядок, в котором этот вычисляемый элемент будет разрешаться в случаях, когда один вычисляемый элемент ссылается на другой (то есть когда вычисляемые элементы пересекаются друг с другом).

FORMAT_STRING

Строка форматирования Microsoft Office, используемая клиентским приложением для отображения значений ячеек.

VISIBLE

Определение видимости вычисляемого элемента в наборе строк схемы. Видимые вычисляемые элементы могут добавляться к набору функцией AddCalculatedMembers. Ненулевое значение указывает, что данный вычисляемый элемент видим. Значение этого свойства по умолчанию равно Visible.

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

NON_EMPTY_BEHAVIOR

Указывает меру или набор, используемые для определения поведения вычисляемых элементов при разрешении пустых ячеек.

Область

Вычисляемый элемент может встречаться в одной из областей действия, перечисленных ниже.

  • Область сеанса
    Видимость и время жизни этого вычисляемого элемента ограничиваются сеансом, в котором создан элемент. (Время жизни может быть меньше длительности сеанса, если по отношению к вычисляемому элементу выдана инструкция DROP MEMBER.) Инструкция CREATE MEMBER создает вычисляемый элемент с областью сеанса.

Изоляция на уровне области

Если в службах SQL Server 2005 Analysis Services сценарий многомерных выражений куба содержит вычисляемые элементы, то по умолчанию они разрешаются ранее выполнения любых вычислений области сеанса и ранее вычислений, определенных в запросе. Однако в службах SQL Server 2000 Analysis Services порядок разрешения можно явным образом использовать для вставки вычисления области сеанса или определенного в запросе между двумя вычислениями уровня куба. Результатом этого различия может быть то, что вычисляемые элементы области сеанса или определенные в запросе в службах SQL Server 2005 Analysis Services не приведут к желаемым результатам.

ms144787.note(ru-ru,SQL.90).gifПримечание.
Иногда функции Aggregate (многомерные выражения) и VisualTotals (многомерные выражения) не работают таким образом.

Эта особенность служб SQL Server 2005 Analysis Services позволяет обычным клиентским приложениям работать с кубами, которые содержат сложные вычисления, не вдаваясь в конкретную реализацию вычислений. Однако иногда может понадобиться выполнить вычисляемые элементы сеанса или области запроса раньше вычислений, определенных в кубе, и при этом применить функции Aggregate и VisualTotals будет невозможно. Службы SQL Server 2000 Analysis Services позволяет добиться этого правильной установкой свойства SOLVE_ORDER для куба и сеанса либо через вычисляемые элементы области запроса. Чтобы добиться этого в службах SQL Server 2005 Analysis Services, придется воспользоваться свойством вычисления SCOPE_ISOLATION.

ms144787.note(ru-ru,SQL.90).gifПримечание.
Свойство вычисления SCOPE_ISOLATION впервые появилось в службах SQL Server 2005 Analysis Services с пакетом обновления 2 (SP2).

Пример

Ниже приведен пример сценария, в котором для получения правильного результата используется свойство вычисления SCOPE_ISOLATION.

Сценарий многомерных выражений куба:

CREATE MEMBER CURRENTCUBE.Measures.ProfitRatio AS 'Measures.[Store Sales]/Measures.[Store Cost]', SOLVE_ORDER = 10

Запрос многомерных выражений:

WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5
SELECT {USAWithoutWA} ON 0 FROM SALES
WHERE ProfitRatio

В результате предыдущего запроса требовалось определить долю продаж в США, без штата Вашингтон (чтобы сохранить стоимость для США без штата Вашингтон). В службах SQL Server 2000 Analysis Services результат возвращался правильно, однако в службах SQL Server 2005 Analysis Services возвращается доля США за вычетом доли штата Вашингтон, что лишено смысла. Для достижения желаемого результата можно воспользоваться свойством вычисления SCOPE_ISOLATION.

Запрос многомерных выражений с применением свойства вычисления SCOPE_ISOLATION:

WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5
,SCOPE_ISOLATION=CUBE
SELECT {USAWithoutWA} ON 0 FROM SALES
WHERE ProfitRatio

См. также

Другие ресурсы

Инструкции определения данных многомерных выражений

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

17 июля 2006 г.

Измененное содержимое
  • Обновлены сведения, касающиеся возможностей и работы служб SQL Server 2005 Analysis Services.

12 декабря 2006 г.

Измененное содержимое
  • В содержимом отражено новое свойство изоляции области, добавленное в пакете обновления 2 (SP2).