Базовый запрос многомерных выражений (многомерные выражения)
Базовый запрос многомерных выражений — это инструкция SELECT, наиболее частый запрос в многомерных выражениях. Чтобы получить основательные знания о применении многомерных выражений для запроса многомерных данных, необходимо понять, как в инструкции многомерных выражений SELECT определяется результирующий набор, синтаксис инструкции SELECT и как с ее помощью создавать простые запросы.
Указание результирующего набора
В многомерном выражении инструкция SELECT указывает результирующий набор, содержащий подмножество многомерных данных, возвращаемое из куба. Чтобы указать результирующий набор, запрос многомерных выражений должен содержать следующие данные:
Число осей или наборов иерархий. В многомерном запросе можно указать до 128 осей.
Элементы каждого измерения, включаемые в каждую ось многомерного запроса.
Имя куба, задающего контекст многомерного запроса.
Элементы оси среза, по которой отсекаются данные для элементов из осей запроса. Дополнительные сведения об осях среза и осях запроса см. в разделе Ограничение запроса с помощью осей запроса и среза (многомерные выражения).
Для указания осей запроса куба, задающего контекст запроса, и осей среза в инструкции многомерных выражений SELECT используются следующие предложения.
Предложение SELECT, определяющее оси запроса в инструкции многомерных выражений SELECT. Дополнительные сведения о построении осей запроса в предложении SELECT см. в разделе Определение содержимого оси запроса (многомерные выражения).
Предложение FROM, определяющее источник многомерных данных для их извлечения в результирующий набор инструкции многомерных выражений SELECT. Дополнительные сведения о предложении 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. Тем не менее есть несколько отличий:
В синтаксисе многомерных выражений наборы различаются путем заключения кортежей и элементов в фигурные скобки (символы { и }). Дополнительные сведения о синтаксисе элементов, кортежей и наборов см. в разделе Работа с элементами, кортежами и наборами (многомерные выражения).
Запросы многомерных выражений могут содержать до 128 осей запросов в инструкции SELECT, но только у первых 5 осей могут быть псевдонимы. Обращаться к оси можно по ее порядковому номеру в запросе многомерных выражений или по ее псевдониму, если он у оси есть. Как и в SQL-запросе, предложение FROM указывает источник данных для запроса многомерных выражений. Однако предложение многомерных выражений FROM ограничивается одним кубом. Сведения из других кубов могут быть получены по значению с помощью функции LookupCube.
Предложение WHERE определяет ось среза. Если в предложении WHERE не упоминается иерархия, службы MicrosoftSQL ServerAnalysis Services считают, что все иерархии, не включенные явно в ось запроса, включены неявно в ось среза, поэтому иерархия фильтруется по ее элементам по умолчанию. В предложении WHERE можно изменить процесс фильтрации для указанной иерархии, что дает возможность тонко управлять включаемыми данными.
Пример инструкции 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] )
Важно! |
---|
Обычно наборы вычисляются в большем контексте куба. Тем не менее, ключевое слово EXISTING (многомерные выражения) указывает вычислять наборы в текущем контексте. |
См. также