Базовый запрос многомерных выражений (многомерные выражения)
Базовый запрос многомерных выражений — это инструкция SELECT, наиболее частый запрос в многомерных выражениях. Чтобы получить основательные знания о применении многомерных выражений для запроса многомерных данных, необходимо понять, как в инструкции многомерных выражений SELECT определяется результирующий набор, синтаксис инструкции SELECT и как с ее помощью создавать простые запросы.
Указание результирующего набора
В многомерном выражении инструкция SELECT указывает результирующий набор, содержащий подмножество многомерных данных, возвращаемое из куба. Чтобы указать результирующий набор, запрос многомерных выражений должен содержать следующие данные.
Число осей, которое должно содержаться в результирующем наборе. В многомерном запросе можно указать до 128 осей.
Набор элементов или кортежей, указываемых на каждой оси запроса многомерных выражений.
Имя куба, задающего контекст многомерного запроса.
Набор элементов или кортежей, указываемых на каждой оси срезов. Дополнительные сведения об осях среза и осях запроса см. в разделе Ограничение запроса с помощью осей запроса и среза (многомерные выражения).
Для указания осей запроса, куба, к которому будет выполнен запрос, и осей среза в инструкции многомерных выражений SELECT используются следующие предложения.
Предложение SELECT, определяющее оси запроса в инструкции многомерных выражений SELECT. Дополнительные сведения о построении осей запроса в предложении SELECT см. в разделе Определение содержимого оси запроса (многомерные выражения).
Предложение FROM, определяющее, к какому кубу будет выполнен запрос. Дополнительные сведения о предложении FROM см. в разделе Инструкция SELECT (многомерные выражения).
Необязательное предложение WHERE, определяющее, какие элементы или кортежи используются на оси среза для ограничения возвращаемых данных. Дополнительные сведения о построении осей среза в предложении WHERE см. в разделе Определение содержимого оси среза (многомерные выражения).
Примечание |
---|
Дополнительные сведения о различных предложениях инструкции 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> ]
Инструкция многомерных выражений SELECT поддерживает дополнительный синтаксис, например: ключевое слово WITH, использование функций многомерных выражений для создания вычисляемых элементов, которые включаются в ось запроса или среза, а также возможность возвращать значения свойств определенных ячеек в составе запроса. Дополнительные сведения о предложении многомерных выражений SELECT см. в разделе Инструкция SELECT (многомерные выражения).
Сравнение синтаксиса инструкции многомерных выражений SELECT с синтаксисом SQL
Формат синтаксиса для инструкции многомерных выражений SELECT сходен с синтаксисом ее аналога в SQL. Тем не менее в нем имеется несколько принципиальных отличий.
В синтаксисе многомерных выражений наборы различаются путем заключения кортежей и элементов в фигурные скобки (символы { и }). Дополнительные сведения о синтаксисе элементов, кортежей и наборов см. в разделе Работа с элементами, кортежами и наборами (многомерные выражения).
Запросы многомерных выражений могут содержать 0, 1, 2 или до 128 осей запросов в инструкции SELECT. Все оси ведут себя совершенно одинаково, в отличие от языка SQL, в котором поведение строк и столбцов запроса существенно различается.
Как и в SQL-запросе, предложение FROM указывает источник данных для запроса многомерных выражений. Однако предложение многомерных выражений FROM ограничивается одним кубом. Сведения из других кубов могут быть получены по значению с помощью функции LookupCube.
Предложение WHERE определяет ось среза в запросе многомерных выражений. Оно действует подобно невидимой дополнительной оси в запросе, создавая срез по значениям, присутствующим в ячейках результирующего набора. В отличие от предложения SQL WHERE, оно не влияет напрямую на содержимое оси строк запроса. Функциональность предложения SQL WHERE доступна через другие функции многомерных выражений, например функцию 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 задает оси запроса как элементы Sales Amount и Tax Amount в измерении Measures и как элементы 2002 и 2003 в измерении Date.
Предложение FROM указывает, что источником данных является куб Adventure Works.
Предложение WHERE определяет ось среза как элемент Southwest измерения Sales Territory.
Обратите внимание, что в запросе используются псевдонимы осей 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] )
Более подробные примеры см. в разделах Определение содержимого оси запроса (многомерные выражения)и Определение содержимого оси среза (многомерные выражения).
См. также