Partilhar via


Manipulação de dados MDX - Função RollupChildren

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

A função RollupChildren das Multidimensional Expressions (MDX) agrega os filhos de um membro, aplicando um operador unário diferente a cada filho, e devolve o valor desta agregação como um número. O operador unário pode ser fornecido por uma propriedade de membro associada ao membro filho, ou o operador pode ser uma expressão de cadeia fornecida diretamente à função.

Exemplos da Função "RollupChildren"

A utilização da função RollupChildren em instruções de Expressões Multidimensionais (MDX) é simples de explicar, mas o efeito desta função nas consultas MDX pode ser amplo.

O efeito da função RollupChildren ocorre em consultas MDX concebidas para realizar análise seletiva de dados existentes no cubo. Por exemplo, a tabela seguinte contém uma lista dos membros filhos do membro-mãe Vendas Líquidas, com os seus operadores unários (representados pela propriedade UNARY_OPERATOR membro) indicados entre parênteses.

Membro pai Membro criança
Vendas líquidas Vendas Internas (+)

Retornos Nacionais (-)

Vendas no estrangeiro (+)

Retornos Estrangeiros (-)

O membro-mãe de Vendas Líquidas atualmente fornece um total das vendas líquidas menos os valores brutos das vendas nacionais e estrangeiras, com os retornos nacionais e estrangeiros subtraídos como parte da consolidação.

No entanto, deve fornecer uma previsão rápida e simples das vendas brutas domésticas e externas, mais 10%, ignorando os retornos nacionais e estrangeiros. Para calcular este valor, pode usar a função RollupChildren de duas formas: com uma propriedade de membro personalizada ou com a função IIf .

Utilização de uma Propriedade de Membro Personalizada

Se o cálculo do rollup for uma operação frequentemente realizada, um método é criar uma propriedade de membro que armazene o operador que será usado para cada filho para uma função específica. A tabela seguinte apresenta operadores unários válidos e descreve o resultado esperado.

Operator Result
+ total = total + filho atual
- total = total - filho atual
* total = total * criança atual
/ total = total / filho atual
~ Child não é usado no rollup. O valor da criança é ignorado.

Por exemplo, uma propriedade de membro chamada SALES_OPERATOR poderia ser criada, e os seguintes operadores unários seriam atribuídos a essa propriedade de membro, como mostrado na tabela seguinte.

Membro pai Membro criança
Vendas líquidas Vendas Internas (+)

Retornos Nacionais (~)

Vendas no estrangeiro (+)

Retornos Estrangeiros (~)

Com esta nova propriedade de membros, a seguinte declaração MDX realizaria a operação de estimativa bruta de vendas de forma rápida e eficiente (ignorando as declarações estrangeiras e domésticas):

RollupChildren([Net Sales], [Net Sales].CurrentMember.Properties("SALES_OPERATOR")) * 1.1  

Quando a função é chamada, o valor de cada filho é aplicado a um total usando o operador armazenado na propriedade membro. Os membros para retornos domésticos e estrangeiros são ignorados, e o total do rollup retornado pela função RollupChildren é multiplicado por 1,1.

Utilização da função IIf

Se a operação de exemplo não for comum ou se se aplicar apenas a uma consulta MDX, a função IIf pode ser usada com a função RollupChildren para obter o mesmo resultado. A consulta MDX seguinte fornece o mesmo resultado do exemplo anterior do MDX, mas fá-lo sem recorrer ao uso de uma propriedade de membro personalizada:

RollupChildren([Net Sales], IIf([Net Sales].CurrentMember.Properties("UNARY_OPERATOR") = "-", "~", [Net Sales].CurrentMember.Properties("UNARY_OPERATOR))) * 1.1  

A instrução MDX examina o operador unário do membro filho. Se o operador unário for usado para subtração (como no caso dos membros dos resultados domésticos e estrangeiros), a função IIf substitui o operador unário tilde (~). Caso contrário, a função IIf utiliza o operador unário do membro filho. Finalmente, o total do rollup devolvido é multiplicado por 1,1 para calcular o valor previsto das vendas brutas domésticas e internacionais.

Ver também

Manipulação de Dados (MDX)