Eixos de consulta e de filtro MDX - Especifique o conteúdo de um eixo de filtro

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

O eixo do slicer filtra os dados devolvidos pela instrução SELECT das Expressões Multidimensionais (MDX), restringindo os dados devolvidos para que apenas os dados que intersectam com os membros especificados sejam devolvidos. Pode ser encarado como um eixo extra invisível numa pesquisa. O eixo do slicer é definido na cláusula WHERE da instrução SELECT em MDX.

Sintaxe do Eixo do Slicer

Para especificar explicitamente um eixo de fatiação, usa o <SELECT slicer axis clause> em MDX, conforme descrito na seguinte sintaxe:

<SELECT slicer axis clause> ::=  WHERE Set_Expression  

Na sintaxe do eixo do slicer mostrada, Set_Expression pode assumir uma expressão de tupla, que é tratada como um conjunto no âmbito da avaliação da cláusula, ou uma expressão de conjunto. Se for especificada uma expressão do conjunto, o MDX tentará avaliar o conjunto, agregando as células resultantes em cada tupla ao longo do conjunto. Por outras palavras, o MDX tentará usar a função Aggregate no conjunto, agregando cada medida pela sua função de agregação associada. Além disso, se a expressão do conjunto não puder ser expressa como uma junção cruzada de membros da hierarquia de atributos, o MDX trata as células que ficam fora da expressão do conjunto do slicer como nulas para efeitos de avaliação.

Importante

Ao contrário da cláusula WHERE em SQL, a cláusula WHERE de uma instrução MDX SELECT nunca filtra diretamente o que é devolvido no eixo Rows de uma consulta. Para filtrar o que aparece no eixo Linhas ou Colunas de uma consulta, pode usar várias funções MDX, por exemplo FILTER, NONEMPTY e TOPCOUNT.

Eixo do Slicer Implícito

Se um membro de uma hierarquia dentro do cubo não estiver explicitamente incluído num eixo de consulta, o membro padrão dessa hierarquia é implicitamente incluído no eixo do slicer. Para mais informações sobre membros por defeito, consulte Definir um Membro por defeito.

Examples

A consulta seguinte não inclui uma cláusula WHERE e devolve o valor da medida do Valor das Vendas na Internet para todos os Anos Civis:

SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,  
[Date].[Calendar Year].MEMBERS ON ROWS  
FROM [Adventure Works]  

Adicionando uma cláusula WHERE, da seguinte forma:

SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,  
[Date].[Calendar Year].MEMBERS ON ROWS  
FROM [Adventure Works]  
WHERE([Customer].[Customer Geography].[Country].&[United States])  
  

não altera o que é devolvido nas Linhas ou Colunas na consulta; altera os valores devolvidos para cada célula. Neste exemplo, a consulta é segmentada de modo a devolver o valor do Valor das Vendas na Internet para todos os Anos Civis, mas apenas para Clientes que vivem nos Estados Unidos. Vários membros de diferentes hierarquias podem ser adicionados à cláusula WHERE. A seguinte consulta mostra o valor do Valor das Vendas na Internet para todos os Anos Civis para Clientes que vivem nos Estados Unidos e que compraram Produtos na Categoria de Bicicletas:

SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,  
[Date].[Calendar Year].MEMBERS ON ROWS  
FROM [Adventure Works]  
WHERE([Customer].[Customer Geography].[Country].&[United States], [Product].[Category].&[1])  

Se quiseres usar múltiplos membros da mesma hierarquia, tens de incluir um conjunto na cláusula WHERE. Por exemplo, a seguinte consulta mostra o valor do Valor das Vendas na Internet para todos os Anos Civis para Clientes que compraram Produtos na Categoria Bicicletas e vivem nos Estados Unidos ou no Reino Unido:

SELECT {[Measures].[Internet Sales Amount]} ON COLUMNS,  
[Date].[Calendar Year].MEMBERS ON ROWS  
FROM [Adventure Works]  
WHERE(  
{[Customer].[Customer Geography].[Country].&[United States]  
, [Customer].[Customer Geography].[Country].&[United Kingdom]}  
, [Product].[Category].&[1])  
  

Como mencionado acima, usar um conjunto na cláusula WHERE irá agregar implicitamente valores para todos os membros do conjunto. Neste caso, a consulta mostra valores agregados para os Estados Unidos e o Reino Unido em cada célula.