Consulta MDX – A consulta básica
Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
A consulta MDX (Multidimensional Expressions) básica é a instrução SELECT – a consulta usada com mais frequência no MDX. 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 segmentação e consulta, consulte Restricting the Query with Query and Slicer Axes (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 de segmentação de dados em uma cláusula WHERE, consulte Especificando o conteúdo de um eixo de 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 à 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. No entanto, há várias diferenças fundamentais:
A sintaxe MDX distingue conjuntos por tuplas ou membros ao redor com chaves (os caracteres { e }.) Para obter mais informações sobre sintaxe de membro, tupla e conjunto, consulte Trabalhando com membros, tuplas e conjuntos (MDX).
As consultas MDX têm 0, 1, 2 ou até 128 eixos de consulta na instrução SELECT. Cada eixo se comporta exatamente da mesma maneira, diferentemente do SQL, onde há diferenças significativas entre o comportamento das linhas e das 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. Ela atua como um eixo extra, invisível na consulta, segmentando os valores que aparecem nas células do conjunto de resultados; diferentemente da cláusula WHERE do SQL, ela não afeta diretamente o que aparece nos eixos das linhas da consulta. A funcionalidade da cláusula WHERE do SQL está disponível por meio de 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 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] )
Para obter exemplos mais detalhados, consulte Especificando o conteúdo de um eixo de consulta (MDX) e Especificando o conteúdo de um eixo de segmentação de dados (MDX).
Consulte Também
Principais conceitos em MDX (Analysis Services)
Instrução SELECT (MDX)