Condividi tramite


Query MDX di base

La query MDX (Multidimensional Expressions) di base corrisponde all'istruzione SELECT, la query eseguita 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 ulteriori informazioni sugli assi di sezionamento e della query, vedere Restrizione della query con gli assi della query e di sezionamento (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 ulteriori informazioni 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 ulteriori 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 separa i set racchiudendo le tuple o i membri tra parentesi graffe, ovvero tra i caratteri { e }. Per ulteriori informazioni sulla sintassi di membri, tuple 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 Impostazione del contenuto di un asse della query (MDX) e Impostazione del contenuto di un asse di sezionamento (MDX).

Vedere anche

Riferimento

Istruzione SELECT (MDX)

Concetti

Concetti chiave di MDX (Analysis Services)