A consulta básica de MDX (MDX)
A consulta básica das expressões multidimensionais (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 que você deseja que o conjunto de resultados contenha. É possível especificar até 128 eixos em uma consulta MDX.
O conjunto de membros ou tuplas a ser incluído em cada eixo da consulta MDX.
O nome do cubo que define o contexto da consulta MDX.
O conjunto de membros ou tuplas a ser incluído no eixo da segmentação de dados. Para obter mais informações sobre eixos de consulta e da segmentação de dados, consulte Restringindo a consulta com os eixos de consulta e slicer (MDX).
Para identificar os eixos de consulta, o cubo que será consultado e o eixo da segmentação de dados, 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 cubo será consultado. Para obter mais informações sobre a cláusula FROM, consulte Instrução SELECT (MDX).
Uma cláusula WHERE opcional que determina quais membros ou tuplas usar no eixo da segmentação de dados para restringir os dados retornados. Para obter mais informações sobre a construção de um eixo da segmentação de dados em uma cláusula WHERE, consulte Especificando o conteúdo de um eixo da segmentação de dados (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 criar membros calculados para inclusão no eixo ou no eixo da segmentação de dados 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 fundamentais:
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 podem ter 0, 1, 2 ou até 128 eixos de consulta na instrução SELECT. Cada eixo se comporta exatamente do mesmo modo, diferente do SQL, em que há diferenças significantes entre o comportamento de linhas e colunas de uma consulta.
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 da segmentação de dados em uma consulta MDX. Age como algo parecido com um eixo extra invisível na consulta, dividindo os valores que aparecem nas células no conjunto de resultados; diferente da cláusula SQL WHERE, não afeta diretamente o que aparece no eixo de linhas da consulta. A funcionalidade da cláusula SQL WHERE está disponível por outras funções MDX, como a função FILTER.
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 da segmentação de dados 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] )
Para obter exemplos detalhados, consulte Especificando o conteúdo de um eixo de consulta (MDX) e Especificando o conteúdo de um eixo da segmentação de dados (MDX).