Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os eixos de consulta especificam as bordas de um conjunto de células retornado por uma instrução SELECT de Expressões Multidimensionais (MDX). Especificar as bordas de um conjunto de células permite restringir os dados retornados visíveis ao cliente.
Para especificar eixos de consulta, use-o <SELECT query axis clause> para atribuir um conjunto a um eixo de consulta específico. Cada <SELECT query axis clause> valor define um eixo de consulta. O número de eixos no conjunto de dados é igual ao número de <SELECT query axis clause> valores na instrução SELECT.
Sintaxe do eixo de consulta
A sintaxe a seguir mostra a sintaxe do <SELECT query axis clause>:
<SELECT query axis clause> ::=
[ NON EMPTY ] Set_Expression [ <SELECT dimension property list clause> ] [<HAVING clause>]
ON {
Integer_Expression |
AXIS( Integer_Expression ) |
{COLUMNS | ROWS | PAGES | SECTIONS | CHAPTERS}
}
Cada eixo de consulta tem um número: zero (0) para o eixo x, 1 para o eixo y, 2 para o eixo z e assim por diante. Na sintaxe para o <SELECT query axis clause>, o valor Integer_Expression especifica o número do eixo. Uma consulta MDX pode dar suporte a até 128 eixos especificados, mas muito poucas consultas MDX usarão mais de 5 eixos. Para os cinco primeiros eixos, os aliases COLUMNS, ROWS, PAGES, SECTIONS e CHAPTERS podem, em vez disso, ser usados.
Uma consulta MDX não pode ignorar eixos de consulta. Ou seja, uma consulta que inclui um ou mais eixos de consulta não deve excluir eixos com numeração inferior ou intermediária. Por exemplo, uma consulta não pode ter um eixo ROWS sem um eixo COLUMNS, ou ter eixos COLUMNS e PAGES sem um eixo ROWS.
No entanto, você pode especificar uma cláusula SELECT sem eixos (ou seja, uma cláusula SELECT vazia). Nesse caso, todas as dimensões são dimensões de segmentação, e a consulta MDX seleciona uma célula.
Na sintaxe do eixo de consulta mostrada anteriormente, cada Set_Expression valor especifica o conjunto que define o conteúdo do eixo de consulta. Para obter mais informações sobre conjuntos, consulte Trabalho com Membros, Tuplas e Conjuntos (MDX).
Exemplos
A instrução SELECT simples a seguir retorna a medida Valor de Vendas da Internet no eixo Colunas e usa a função MDX MEMBERS para retornar todos os membros da hierarquia calendário na dimensão Data no eixo Linhas:
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
{[Date].[Calendar].MEMBERS} ON ROWS
FROM [Adventure Works]
As duas consultas a seguir retornam exatamente os mesmos resultados, mas demonstram o uso de números de eixo em vez de aliases:
SELECT {[Measures].[Internet Sales Amount]} ON 0,
{[Date].[Calendar].MEMBERS} ON 1
FROM [Adventure Works]
SELECT {[Measures].[Internet Sales Amount]} ON AXIS(0),
{[Date].[Calendar].MEMBERS} ON AXIS(1)
FROM [Adventure Works]
A palavra-chave NON EMPTY, usada antes da definição do conjunto, é uma maneira fácil de remover todas as tuplas vazias de um eixo. Por exemplo, nos exemplos que vimos até agora, não há dados no cubo a partir de agosto de 2004. Para remover todas as linhas do conjunto de células que não têm dados em nenhuma coluna, basta adicionar NON EMPTY antes do conjunto na definição do eixo Linhas da seguinte maneira:
SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,
NON EMPTY
{[Date].[Calendar].MEMBERS} ON ROWS
FROM [Adventure Works]
NON EMPTY pode ser usado em todos os eixos em uma consulta. Compare os resultados das duas consultas a seguir: a primeira não usa NON EMPTY, e a segunda usa em ambos os eixos.
SELECT {[Measures].[Internet Sales Amount]}
* [Promotion].[Promotion].[Promotion].MEMBERS
ON COLUMNS,
{[Date].[Calendar].[Calendar Year].MEMBERS} ON ROWS
FROM [Adventure Works]
WHERE([Product].[Subcategory].&[19])
SELECT NON EMPTY {[Measures].[Internet Sales Amount]}
* [Promotion].[Promotion].[Promotion].MEMBERS
ON COLUMNS,
NON EMPTY
{[Date].[Calendar].[Calendar Year].MEMBERS} ON ROWS
FROM [Adventure Works]
WHERE([Product].[Subcategory].&[19])
A cláusula HAVING pode ser usada para filtrar o conteúdo de um eixo com base em um critério específico; é menos flexível do que outros métodos que podem obter os mesmos resultados, como a função FILTER, mas é mais simples de usar. Aqui está um exemplo que retorna apenas as datas em que o Valor de Vendas pela Internet é maior que US$ 15.000:
SELECT {[Measures].[Internet Sales Amount]}
ON COLUMNS,
NON EMPTY
{[Date].[Calendar].[Date].MEMBERS}
HAVING [Measures].[Internet Sales Amount]>15000
ON ROWS
FROM [Adventure Works]