Manipulation de données MDX - fonction RollupChildren

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

La fonction Multidimensional Expressions (MDX) RollupChildren cumule les enfants d’un membre, en appliquant un opérateur unaire différent à chaque enfant, et retourne la valeur de ce cumul sous la forme d'un nombre. L’opérateur unaire peut être fourni par une propriété de membre associée au membre enfant, ou bien il peut s'agir d'une expression de chaîne fournie directement à la fonction.

Exemples de la fonction RollupChildren

L’utilisation de la fonction RollupChildren dans les instructions MDX (Multidimensional Expressions) est simple à expliquer, mais l’effet de cette fonction sur les requêtes MDX peut être large.

L’effet de la fonction RollupChildren se produit dans les requêtes MDX conçues pour effectuer une analyse sélective sur les données de cube existantes. Par exemple, le tableau suivant contient une liste de membres enfants pour le membre parent Net Sales, avec leurs opérateurs unaires (représentés par la propriété de membre UNARY_OPERATOR) affichés entre parenthèses.

Membre parent Membre enfant
Ventes nettes Ventes intérieures (+)

Retours nationaux (-)

Ventes étrangères (+)

Retours étrangers (-)

Le membre parent Net Sales fournit actuellement un total de ventes nettes moins les valeurs brutes des ventes intérieures et étrangères, avec les rendements nationaux et étrangers soustraits dans le cadre du cumul.

Toutefois, vous souhaitez fournir une prévision rapide et facile des ventes brutes intérieures et étrangères plus 10%, ignorant les rendements nationaux et étrangers. Pour calculer cette valeur, vous pouvez utiliser la fonction RollupChildren de deux façons : avec une propriété membre personnalisée ou avec la fonction IIf .

Utilisation d’une propriété membre personnalisée

Si le calcul cumulatif doit être une opération fréquemment effectuée, une méthode consiste à créer une propriété membre qui stocke l’opérateur qui sera utilisé pour chaque enfant pour une fonction spécifique. Le tableau suivant affiche des opérateurs unaires valides et décrit le résultat attendu.

Operator Résultat
+ total = total + enfant actuel
- total = total - enfant actuel
* total = total * enfant actuel
/ total = total / enfant actuel
~ L’enfant n’est pas utilisé dans le cumul. La valeur de l’enfant est ignorée.

Par exemple, une propriété membre appelée SALES_OPERATOR peut être créée, et les opérateurs unaires suivants sont affectés à cette propriété membre, comme indiqué dans le tableau suivant.

Membre parent Membre enfant
Ventes nettes Ventes intérieures (+)

Retours nationaux (~)

Ventes étrangères (+)

Retours étrangers (~)

Avec cette nouvelle propriété membre, l’instruction MDX suivante effectuerait rapidement et efficacement l’opération d’estimation des ventes brutes (ignorant les rendements étrangers et nationaux) :

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

Lorsque la fonction est appelée, la valeur de chaque enfant est appliquée à un total à l’aide de l’opérateur stocké dans la propriété membre. Les membres pour les retours nationaux et étrangers sont ignorés, et le total cumulatif calculé par la fonction RollupChildren est multiplié par 1,1.

Utilisation de la fonction IIf

Si l’exemple d’opération n’est pas courant ou si l’opération s’applique uniquement à une requête MDX, la fonction IIf peut être utilisée avec la fonction RollupChildren pour fournir le même résultat. La requête MDX suivante fournit le même résultat que l’exemple MDX précédent, mais le fait sans recourir à l’utilisation d’une propriété membre personnalisée :

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

L’instruction MDX examine l’opérateur unaire du membre enfant. Si l’opérateur unaire de soustraction est utilisé (comme pour les membres de retour nationaux et étrangers), la fonction IIf remplace l'opérateur unaire de soustraction par l’opérateur tilde (~). Sinon, la fonction IIf utilise l’opérateur unaire du membre enfant. Enfin, le total cumulatif retourné est ensuite multiplié par 1,1 pour fournir la valeur de prévision des ventes brutes intérieures et étrangères.

Voir aussi

Manipulation de données (MDX)