Query MDX - Query di base

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

La query MDX (Multidimensional Expressions) di base è l'istruzione SELECT, ovvero la query usata più di frequente in MDX. Se si conosce la sintassi dell'istruzione MDX SELECT, si sa creare una semplice query tramite questa istruzione e si capisce perché in un'istruzione SELECT è necessario specificare un set di risultati, si avrà la padronanza dell'utilizzo di MDX per l'esecuzione di query in dati multidimensionali.

Impostazione di un set di risultati

In MDX l'istruzione SELECT specifica un set di risultati contenente un subset dei dati multidimensionali di un cubo che sono stati restituiti. Per specificare un set di risultati, una query MDX deve contenere le informazioni seguenti:

  • Numero di assi che devono essere inclusi nel set di risultati. In una query MDX è possibile specificare un massimo di 128 assi.

  • Set di membri o tuple da includere in ogni asse della query MDX.

  • Il nome del cubo che definisce il contesto della query MDX.

  • Set di membri o tuple da includere nell'asse di sezionamento. Per altre informazioni sui filtri dei dati e sugli assi di query, vedere Restricting the Query with Query and Slicer Axes (MDX).

Per identificare gli assi della query, il cubo su cui verrà eseguita la query e l'asse di sezionamento, l'istruzione MDX deve utilizzare le clausole seguenti:

Nota

Per informazioni più dettagliate sulle varie clausole dell'istruzione SELECT, vedere Istruzione SELECT (MDX).

Sintassi dell'istruzione SELECT

La sintassi seguente illustra un'istruzione SELECT di base in cui sono specificate le clausole SELECT, FROM e WHERE:

[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ]   
SELECT [ * | ( <SELECT query axis clause>   
    [ , <SELECT query axis clause> ... ] ) ]  
FROM <SELECT subcube clause>   
[ <SELECT slicer axis clause> ]  
[ <SELECT cell property list clause> ]  

L'istruzione MDX SELECT supporta sintassi facoltativa, ad esempio la parola chiave WITH, l'utilizzo di funzioni MDX per la creazione di membri calcolati per l'inclusione di un asse o un asse di sezionamento e la restituzione dei valori di proprietà di celle specifiche come parte della query. Per altre informazioni sull'istruzione MDX SELECT, vedere Istruzione SELECT (MDX).

Confronto tra la sintassi dell'istruzione MDX SELECT e SQL

Il formato della sintassi di un'istruzione MDX SELECT è simile alla sintassi SQL. Sussistono tuttavia diverse differenze essenziali:

  • La sintassi MDX distingue i set in base alle tuple o ai membri con parentesi graffe (i caratteri { e } ). Per altre informazioni sulla sintassi membro, tupla e set, vedere Utilizzo di membri, tuple e set (MDX).

  • Le query MDX possono includere 0, 1, 2 e fino a 128 assi della query nell'istruzione SELECT. Ciascun asse si comporta esattamente allo stesso modo, a differenza di SQL in cui sussistono differenze significative tra il comportamento delle righe e il comportamento delle colonne di una query.

  • In modo analogo a una query SQL, la clausola FROM indica l'origine dei dati per la query MDX. La clausola FROM di MDX tuttavia è limitata a un solo cubo. Le informazioni di altri cubi possono essere recuperate per singoli valori tramite la funzione LookupCube.

  • La clausola WHERE descrive l'asse di sezionamento in una query MDX e opera come un asse aggiuntivo invisibile nella query, sezionando i valori visualizzati nelle celle nel set di risultati. Diversamente dalla clausola SQL WHERE, questa clausola non influisce direttamente su quanto visualizzato nell'asse delle righe della query. La funzionalità della clausola SQL WHERE è disponibile tramite altre funzioni MDX, ad esempio la funzione FILTER.

Esempio di istruzione SELECT

Nell'esempio seguente viene illustrata una query MDX di base in cui è utilizzata l'istruzione SELECT. Questa query restituisce un set di risultati contenente le vendite e le imposte relative agli anni 2002 e 2003 per le aree di vendita della zona sudoccidentale.

SELECT  
    { [Measures].[Sales Amount],   
        [Measures].[Tax Amount] } ON COLUMNS,  
    { [Date].[Fiscal].[Fiscal Year].&[2002],   
        [Date].[Fiscal].[Fiscal Year].&[2003] } ON ROWS  
FROM [Adventure Works]  
WHERE ( [Sales Territory].[Southwest] )  

Nell'esempio la query definisce le informazioni del set di risultati seguenti:

  • La clausola SELECT imposta le assi della query come membri Sales Amount e Tax Amount della dimensione Measures e i membri 2002 e 2003 della dimensione Date.

  • La clausola FROM indica che l'origine dei dati è il cubo Adventure Works.

  • La clausola WHERE definisce l'asse di sezionamento come membro Southwest della dimensione Sales Territory.

Si noti che nella query di esempio sono utilizzati anche gli alias di asse COLUMNS e ROWS. In alternativa è possibile specificare la posizione ordinale degli assi. Nell'esempio seguente viene illustrata la stessa query MDX in cui è tuttavia specificata la posizione ordinale dei vari assi:

SELECT  
    { [Measures].[Sales Amount],   
        [Measures].[Tax Amount] } ON 0,  
    { [Date].[Fiscal].[Fiscal Year].&[2002],   
        [Date].[Fiscal].[Fiscal Year].&[2003] } ON 1  
FROM [Adventure Works]  
WHERE ( [Sales Territory].[Southwest] )  

Per esempi più dettagliati, vedere Specifica del contenuto di un asse di query (MDX) e Specifica del contenuto di un asse del filtro dei dati (MDX).

Vedere anche

Concetti chiave di MDX (Analysis Services)
Istruzione SELECT (MDX)