Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
La funzione MDX (Multidimensional Expressions) RollupChildren esegue l'aggregazione degli elementi figli di un membro, applicando un operatore unario diverso a ciascun elemento figlio e restituisce il valore di questa aggregazione come numero. L'operatore unario può essere fornito da una proprietà membro associata al membro figlio oppure l'operatore può essere un'espressione stringa fornita direttamente alla funzione.
Esempi di funzioni RollupChildren
L'uso della funzione RollupChildren nelle istruzioni MDX (Multidimensional Expressions) è semplice da spiegare, ma l'effetto di questa funzione sulle query MDX può essere esteso.
L'effetto della funzione RollupChildren si verifica nelle query MDX progettate per eseguire analisi selettive sui dati del cubo esistenti. Ad esempio, la tabella seguente contiene un elenco di membri figlio per il membro principale Net Sales, con i relativi operatori unari (rappresentati dalla proprietà UNARY_OPERATOR del membro) mostrati tra parentesi.
| Membro padre | Membro figlio |
|---|---|
| Vendite nette | Vendite nazionali (+) Restituisci nazionali (-) Vendite esterne (+) Restituzioni esterne (-) |
Il membro principale "Net Sales" attualmente fornisce il totale delle vendite nette meno i valori delle vendite nazionali e straniere lorde, sottraendo i resi nazionali ed esteri come parte dell'aggregazione.
Tuttavia, si vuole fornire una previsione rapida e semplice delle vendite lorde nazionali e straniere più 10%, ignorando i rendimenti interni ed esteri. Per calcolare questo valore, è possibile usare la funzione RollupChildren in uno dei due modi seguenti: con una proprietà membro personalizzata o con la funzione IIf .
Utilizzo di una proprietà membro personalizzata
Se il calcolo di rollup deve essere un'operazione eseguita di frequente, un metodo consiste nel creare una proprietà membro che archivia l'operatore che verrà usato per ogni elemento figlio per una funzione specifica. Nella tabella seguente vengono visualizzati operatori unari validi e viene descritto il risultato previsto.
| Operator | Result |
|---|---|
| + | totale = totale + bambino corrente |
| - | total = total - figlio corrente |
| * | totale = totale * bambino corrente |
| / | totale = totale / bambino attuale |
| ~ | L'elemento figlio non è utilizzato nel rollup. Il valore dell'elemento figlio viene ignorato. |
Ad esempio, è possibile creare una proprietà membro denominata SALES_OPERATOR e gli operatori unari seguenti verranno assegnati a tale proprietà membro, come illustrato nella tabella seguente.
| Membro padre | Membro figlio |
|---|---|
| Vendite nette | Vendite nazionali (+) Ritorni nazionali (~) Vendite esterne (+) Resi Esteri (~) |
Con questa nuova proprietà membro, l'istruzione MDX seguente eseguirà l'operazione di stima delle vendite lorde in modo rapido ed efficiente (ignorando i rendimenti esteri e nazionali):
RollupChildren([Net Sales], [Net Sales].CurrentMember.Properties("SALES_OPERATOR")) * 1.1
Quando viene chiamata la funzione , il valore di ogni elemento figlio viene applicato a un totale usando l'operatore archiviato nella proprietà membro. I membri per i rendimenti nazionali ed esteri vengono ignorati e il totale complessivo rollup restituito dalla funzione RollupChildren viene moltiplicato per 1,1.
Uso della funzione IIf
Se l'operazione di esempio non è comune o se l'operazione si applica solo a una query MDX, la funzione IIf può essere usata con la funzione RollupChildren per fornire lo stesso risultato. La query MDX seguente fornisce lo stesso risultato dell'esempio MDX precedente, ma lo fa senza ricorrere all'uso di una proprietà membro personalizzata:
RollupChildren([Net Sales], IIf([Net Sales].CurrentMember.Properties("UNARY_OPERATOR") = "-", "~", [Net Sales].CurrentMember.Properties("UNARY_OPERATOR))) * 1.1
L'istruzione MDX esamina l'operatore unario del membro figlio. Se l'operatore unario viene utilizzato per la sottrazione (come nel caso con i membri restituiti interni ed esteri), la funzione IIf sostituisce l'operatore unario tilde (~). In caso contrario, la funzione IIf usa l'operatore unario del membro figlio. Infine, il totale aggregato restituito quindi viene moltiplicato per 1,1 per fornire il valore di previsione delle vendite lorde nazionali e straniere.