Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Базовый запрос многомерных выражений — это инструкция SELECT, наиболее часто используемая в многомерных выражениях. Понимая, как инструкция SELECT многомерных выражений должна указывать результирующий набор, какой синтаксис инструкции SELECT и как создать простой запрос с помощью инструкции SELECT, вы будете иметь четкое представление о том, как использовать многомерные выражения для запроса многомерных данных.
Указание результирующих наборов
В MDX оператор SELECT указывает результирующий набор данных, содержащий подмножество многомерных данных, возвращенных из куба. Чтобы указать результирующий набор, запрос MDX должен содержать следующие сведения.
Количество осей, которое вы хотите, чтобы содержал набор результатов. В запросе многомерных выражений можно указать до 128 осей.
Набор членов или кортежей для включения на каждой оси MDX-запроса.
Название куба, который определяет контекст MDX-запроса.
Набор элементов или кортежей, которые необходимо включить в ось среза. Дополнительные сведения о срезах и осях запросов см. в разделе Ограничение запроса с помощью осей запросов и срезов (MDX).
Чтобы определить оси запроса, куб, который будет запрашиваться, и ось среза, инструкция MDX SELECT использует следующие предложения:
Предложение SELECT, определяющее оси запроса инструкции MDX SELECT. Дополнительные сведения о создании оси запросов в предложении SELECT см. в разделе "Указание содержимого оси запроса" (MDX).
Предложение FROM, которое определяет, какой куб будет запрашиваться. Дополнительные сведения о предложении FROM см. в инструкции SELECT (многомерные выражения).
Необязательное предложение WHERE, определяющее, какие элементы или кортежи следует использовать на оси среза, чтобы ограничить возвращаемые данные. Более подробную информацию о построении оси среза в предложении WHERE см. в разделе "Указание содержимого оси среза (MDX)".
Замечание
Дополнительные сведения о различных предложениях инструкции SELECT см. в инструкции SELECT (многомерные выражения).
Синтаксис инструкции SELECT
В следующем синтаксисе показана базовая инструкция SELECT, которая включает использование предложений SELECT, FROM и WHERE:
[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ]
SELECT [ * | ( <SELECT query axis clause>
[ , <SELECT query axis clause> ... ] ) ]
FROM <SELECT subcube clause>
[ <SELECT slicer axis clause> ]
[ <SELECT cell property list clause> ]
Инструкция MDX SELECT поддерживает необязательный синтаксис, например ключевое слово WITH, использование функций многомерных выражений для создания вычисляемых элементов для включения в ось или оси среза, а также возможность возвращать значения определенных свойств ячейки в рамках запроса. Дополнительные сведения об инструкции MDX SELECT см. в инструкции SELECT (многомерные выражения).
Сравнение синтаксиса инструкции MDX SELECT с SQL
Формат синтаксиса инструкции MDX SELECT аналогичен синтаксису SQL. Однако существует несколько фундаментальных различий:
Синтаксис MDX различает наборы, окружая кортежи или элементы фигурными скобками (символами { и } ). Дополнительные сведения о синтаксисе члена, кортежа и набора см. в разделе Работа с членами, кортежами и наборами (MDX).
Запросы MDX могут содержать 0, 1, 2 или до 128 осей запросов в инструкции SELECT. Каждая ось ведет себя точно так же, в отличие от SQL, где существуют значительные различия между поведением строк и столбцов запроса.
Как и в SQL-запросе, предложение FROM указывает источник данных для MDX-запроса. Однако в предложении MDX FROM может использоваться только один куб. Сведения из других кубов можно получить на основе значения по значению с помощью функции LookupCube.
Предложение WHERE описывает ось среза в запросе многомерных выражений. Он действует как невидимая, дополнительная ось в запросе, и срезая значения, отображаемые в ячейках в результирующем наборе; в отличие от предложения SQL WHERE, он не влияет непосредственно на то, что отображается на оси строк запроса. Функциональность предложения SQL WHERE доступна через другие функции MDX, такие как функция FILTER.
Пример инструкции SELECT
В следующем примере показан базовый запрос многомерных выражений, использующий инструкцию SELECT. Этот запрос возвращает результирующий набор, содержащий суммы продаж и налогов 2002 и 2003 для юго-западных территорий продаж.
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON COLUMNS,
{ [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] } ON ROWS
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )
В этом примере запрос определяет следующие сведения результирующих наборов:
Предложение SELECT задает оси запроса как члены измерения "Сумма продаж" и "Сумма налога" измерения "Меры", а также элементы 2002 и 2003 измерения "Дата".
Предложение FROM указывает, что источником данных является куб Adventure Works.
Предложение WHERE определяет ось среза как юго-западную часть измерения "Территория продаж".
Обратите внимание, что в примере запроса также используются псевдонимы осей COLUMNS и ROWS. Также могли бы быть использованы порядковые позиции для этих осей. В следующем примере показано, как может быть записан запрос многомерных выражений для использования порядковой позиции каждой оси:
SELECT
{ [Measures].[Sales Amount],
[Measures].[Tax Amount] } ON 0,
{ [Date].[Fiscal].[Fiscal Year].&[2002],
[Date].[Fiscal].[Fiscal Year].&[2003] } ON 1
FROM [Adventure Works]
WHERE ( [Sales Territory].[Southwest] )
Более подробные примеры см. в разделе «Указание содержимого оси запросов» (MDX) и «Указание содержимого оси среза» (MDX).
См. также
Основные понятия в MDX (службы Analysis Services)
Инструкция SELECT (MDX)