Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.