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


Определение данных многомерных выражений — CREATE MEMBER

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

Синтаксис

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

Аргументы

Cube_Name
Допустимое строковое выражение, содержащее имя куба, в котором будет создан элемент.

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

MDX_Expression
Допустимое многомерное выражение.

Property_Name
Допустимое строковое выражение, представляющее имя свойства вычисляемого элемента.

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

Замечания

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

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

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

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

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

Область

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

Область запроса
Видимость и время жизни этого вычисляемого элемента ограничиваются данным запросом. Вычисляемый элемент определен в одном запросе. Область запроса имеет приоритет по сравнению с областью сеанса. Дополнительные сведения см. в разделе "Создание вычисляемых элементов с областью запроса" (МНОГОМЕРНЫЕ выражения).

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

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

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

Заметка

В некоторых сценариях функция агрегата (многомерные выражения) и функция VisualTotals (многомерные выражения) не демонстрируют это поведение.

Эта особенность позволяет обычным клиентским приложениям работать с кубами, которые содержат сложные вычисления, не вдаваясь в конкретную реализацию вычислений. Однако в некоторых сценариях может потребоваться выполнить вычисляемые члены сеанса или запроса перед определенными вычислениями в кубе, и ни функция Агрегата, ни функция VisualTotals не применимы. Чтобы сделать это, воспользуйтесь свойством вычисления SCOPE_ISOLATION.

пример

Ниже приведен пример скрипта, в котором для получения правильного результата используется свойство вычисления 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  

В результате предыдущего запроса требовалось определить долю продаж в США, без штата Вашингтон (чтобы сохранить стоимость для США без штата Вашингтон). Предыдущий запрос не вернул ожидаемого результата. Возвращенным результатом была доля США за вычетом доли штата Вашингтон, что лишено смысла. Для достижения желаемого результата можно воспользоваться свойством вычисления 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  

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

У каждого вычисляемого элемента есть набор стандартных свойств. Если клиентское приложение подключено к службам Analysis Services, свойства по умолчанию поддерживаются или доступны для поддержки, так как администратор выбирает.

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

Идентификатор свойства Значение
SOLVE_ORDER Порядок, в котором этот вычисляемый элемент будет вычисляться в случаях, когда один вычисляемый элемент ссылается на другой (то есть когда вычисляемые элементы пересекаются друг с другом).
FORMAT_STRING Строка формата стиля Office, которую клиентское приложение может использовать при отображении значений ячеек.
VISIBLE Значение, определяющее видимость вычисляемого элемента в наборе строк схемы. Видимые вычисляемые элементы можно добавить в набор с помощью функции AddCalculatedMembers . Ненулевое значение указывает, что данный вычисляемый элемент видим. Значение по умолчанию для этого свойства — Visible.

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

** Предупреждение ** Это свойство устарело. Не задавайте его. Дополнительные сведения см. в разделе "Устаревшие функции служб Analysis Services" в SQL Server 2014 .
CAPTION Строка, используемая клиентским приложением в качестве заголовка элемента.
DISPLAY_FOLDER Строка, определяющая путь к папке отображения, которую клиентское приложение использует для демонстрации элемента. Разделитель уровней вложенности папок определяется клиентским приложением. Для средств и клиентов, предоставляемых службами Analysis Services, обратная косая черта (\) — это разделитель уровня. Чтобы предоставить несколько папок отображения для определенного элемента, используйте точку с запятой (;) для разделения папок.
ASSOCIATED_MEASURE_GROUP Имя группы мер, с которой связан элемент.

См. также

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