Partilhar via


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çãoObservaçã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] )
Observação importanteImportante

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.

Consulte também

Referência

Conceitos