Condividi tramite


Script MDX di base (MDX)

Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Uno script MDX (Multidimensional Expressions) definisce il processo di calcolo per un cubo in Microsoft SQL Server SQL Server Analysis Services. Esistono due tipi di script MDX:

Script MDX predefinito
Al momento della creazione di un cubo, SQL Server Analysis Services crea uno script MDX predefinito per tale cubo. Lo script definisce una sessione di calcolo per l'intero cubo.

Script MDX definito dall'utente
Dopo la creazione di un cubo è possibile aggiungervi script MDX definiti dall'utente che estendono le capacità di calcolo del cubo.

Script MDX predefinito

Lo script MDX predefinito che SQL Server Analysis Services crea quando si definisce un cubo contiene una singola istruzione CALCULATE. che si trova all'inizio dello script e indica che l'intero cubo dovrà essere calcolato durante la prima sessione di calcolo.

Lo script MDX predefinito contiene anche i comandi script che creano i set denominati, le assegnazioni e i membri calcolati creati in Progettazione cubi:

  • SQL Server Analysis Services aggiunge direttamente comandi script allo script MDX predefinito.

  • Per ogni set denominato presente nel cubo, esiste un'istruzione CREATE SET corrispondente nello script MDX predefinito.

  • Per ogni membro calcolato definito nel cubo, esiste un'istruzione CREATE MEMBER corrispondente nello script MDX predefinito.

È possibile controllare l'ordine dei comandi script, dei set denominati e dei membri calcolati nello script MDX predefinito usando la scheda Calcoli di Progettazione cubi. Per altre informazioni sulla definizione dei calcoli archiviati nello script MDX predefinito, vedere Calcoli nei modelli multidimensionali.

Se a un cubo non è associato alcuno script MDX, il cubo utilizzerà lo script MDX predefinito. Un cubo deve essere associato ad almeno uno script MDX, perché si basa sullo script MDX per determinare il comportamento di calcolo. In altre parole, un cubo non associato a uno script MDX o associato a uno script MDX vuoto non è in grado di calcolare alcuna cella. Se si creano cubi a livello di programmazione, utilizzando comandi ASSL (Analysis Services Scripting Language) o tramite AMO (Analysis Management Objects), è consigliabile creare anche uno script MDX predefinito contenente una singola istruzione CALCULATE per il cubo.

Contenuto degli script MDX

Uno script MDX può contenere le istruzioni e le espressioni seguenti:

Tutte le istruzioni di scripting MDX
Negli script MDX le istruzioni di scripting MDX controllano il contesto e l'ambito dei calcoli e gestiscono il comportamento delle altre istruzioni contenute nello script MDX. Questa categoria include le istruzioni seguenti:

Per altre informazioni sulle istruzioni di scripting MDX, vedere ISTRUZIONI MDX scripting (MDX).

CREATE MEMBER
L'istruzione CREATE MEMBER crea membri calcolati. Per altre informazioni su come creare membri calcolati, vedere Compilazione di membri calcolati in MDX (MDX).For more information about how to create calculated members, see Building Calculated Members in MDX (MDX).

CREATE SET
L'istruzione CREATE SET crea set denominati. Per altre informazioni su come creare set di nomi, vedere Compilazione di set denominati in MDX (MDX).

Istruzioni condizionali
Le istruzioni condizionali aggiungono logica condizionale agli script MDX. Questa categoria include le istruzioni CASE e IF .

Espressioni di assegnazione
Un'espressione di assegnazione assegna un'espressione, ad esempio un valore, a un sottocubo soggetto a vincoli. Un'espressione di sottocubo soggetta a vincoli è una raccolta di espressioni set soggette a vincoli che definisce i limiti di un sottocubo in uno script MDX. Nei frammenti di codice seguenti viene illustrata la sintassi di un'espressione di sottocubo soggetta a vincoli:

<Constrained subcube> ::= (   
    ( <Constrained set> [<Crossjoin operator> <Constrained set>...] |  
    <ROOT function> |  
    <TREE function> |  
    LEAVES() |  
    * ) [, <Constrained subcube>...]  
<Constrained set> ::=   
    <Natural hierarchy>.MEMBERS |   
    <Natural hierarchy>.LEVEL(<numeric expression>).MEMBERS |   
    { <Natural hierarchy member> } |   
    DESCENDANTS( <Natural hierarchy member>, <Level expression>, ( SELF | AFTER | SELF_AND_AFTER ) ) |   
    DESCENDANTS( <Natural hierarchy member>, , LEAVES )  
<Natural hierarchy> ::= <Hierarchy identifier>  
<Natural hierarchy member> ::= <Natural hierarchy>.<identifier>[.<identifier>...]  

Vedere anche

Guida di riferimento al linguaggio MDX
Nozioni fondamentali sullo scripting MDX (Analysis Services)