A consulta básica de MDX (MDX)
A consulta básica da linguagem MDX é a instrução SELECT, a consulta MDX mais usada. Entendendo como a instrução MDX SELECT deve especificar um conjunto de resultados, como é sua sintaxe e como criar uma consulta simples usando a instrução SELECT, você terá uma compreensão sólida de como usar a linguagem MDX para consultar dados multidimensionais.
Especificando um conjunto de resultados
Na linguagem MDX, a instrução SELECT especifica um conjunto de resultados que contém um subconjunto de dados multidimensionais retornados a partir de um cubo. Para especificar um conjunto de resultados, a consulta MDX deve conter as seguintes informações:
O número de eixos ou conjuntos de hierarquias. É possível especificar até 128 eixos em uma consulta MDX.
Os membros de cada dimensão a ser incluída em cada eixo da consulta MDX.
O nome do cubo que define o contexto da consulta MDX.
Os membros de um eixo do slicer no qual são separados dados para membros a partir dos eixos da consulta. Para obter mais informações sobre eixos de consulta e slicer, consulte Restringindo a consulta com os eixos de consulta e slicer (MDX).
Para identificar os eixos de consulta, o cubo que define o contexto da consulta e o eixo do slicer, a instrução MDX SELECT usa as seguintes cláusulas:
Uma cláusula SELECT que determina os eixos de consulta de uma instrução MDX SELECT. Para obter mais informações sobre a construção de eixos de consulta em uma cláusula SELECT, consulte Especificando o conteúdo de um eixo de consulta (MDX).
Uma cláusula FROM que determina qual fonte de dados multidimensional usar para extrair dados que vão preencher o conjunto de resultados da instrução MDX SELECT. Para obter mais informações sobre a cláusula FROM, consulte Instrução SELECT (MDX).
Uma cláusula WHERE que determina opcionalmente qual dimensão ou membro usar como eixo do slicer que restringe a extração de dados para uma dimensão ou um membro específico(a). Para obter mais informações sobre a construção de um eixo do slicer em uma cláusula WHERE, consulte Especificando o conteúdo de um eixo do slicer (MDX).
Observação |
---|
Para obter informações mais detalhadas sobre as várias cláusulas da instrução SELECT, consulte Instrução SELECT (MDX). |
Sintaxe da instrução SELECT
A sintaxe a seguir mostra uma instrução SELECT básica, incluindo o uso das cláusulas SELECT, FROM e 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> ]
A instrução MDX SELECT oferece suporte à sintaxe opcional, como a palavra-chave WITH, ao uso de funções MDX para construir membros por cálculo para inclusão no eixo ou no eixo do slicer e a capacidade de retornar os valores das propriedades da célula específica como parte da consulta. Para obter mais informações sobre a instrução MDX SELECT, consulte Instrução SELECT (MDX).
Comparando a sintaxe da instrução MDX SELECT com o SQL
O formato da sintaxe da instrução MDX SELECT é similar à sintaxe do SQL. Entretanto, há várias diferenças óbvias:
A sintaxe MDX distingue os conjuntos encerrando tuplas ou membros entre chaves (os caracteres { e }). Para obter mais informações sobre a sintaxe de membro, tupla e conjunto, consulte Trabalhando com membros, tuplas e conjuntos (MDX).
As consultas MDX têm até 128 eixos de consulta na instrução SELECT, mas somente os primeiros cinco eixos possuem aliases. É possível referir-se ao eixo pela posição ordinal do eixo em uma consulta MDX ou pelo alias do eixo se este tiver um alias. Como com uma consulta SQL, a cláusula FROM nomeia a fonte dos dados para a consulta MDX. No entanto, a cláusula MDX FROM é restrita a um único cubo. Informações de outros cubos podem ser recuperadas valor a valor usando a função LookupCube.
A cláusula WHERE descreve o eixo do slicer. Se não houver uma hierarquia mencionada como parte da cláusula WHERE, o MicrosoftSQL ServerAnalysis Services assumirá que toda hierarquia que não foi explicitamente incluída em um eixo de consulta foi implicitamente incluída no eixo do slicer e a hierarquia será filtrada com base nos membros padrão. A cláusula WHERE pode alterar o processo do filtro da hierarquia especificada, dando-lhe mais controle sobre os dados incluídos.
Exemplo de instrução SELECT
O exemplo a seguir mostra uma consulta MDX básica que usa a instrução SELECT. Ela retorna um conjunto de resultados que contém os valores de vendas e tributos de 2002 e 2003 da região sudoeste.
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] )
Neste exemplo, a consulta define as seguintes informações do conjunto de resultados:
A cláusula SELECT define os eixos da consulta como os membros Valor de Vendas e Valor de Tributos da dimensão Medidas e os membros 2002 e 2003 da dimensão Data.
A cláusula FROM indica que a fonte de dados é o cubo Adventure Works.
A cláusula WHERE define o eixo do slicer como o membro Sudoeste da dimensão Região de vendas.
Observe que o exemplo de consulta também usa os aliases de eixo COLUMNS e ROWS. As posições ordinais desses eixos também poderiam ser usadas. O exemplo a seguir mostra como a consulta MDX poderia ter sido escrita para usar a posição ordinal de cada eixo:
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] )
Importante |
---|
Normalmente, os conjuntos são avaliados no contexto mais amplo do cubo. Entretanto, a palavra-chave EXISTING (MDX) força a avaliação dos conjuntos no contexto atual. |