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:

  • Il numero degli assi che si desidera vengano contenuti nel set di risultati. In una query MDX è possibile specificare un massimo di 128 assi.

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

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

  • Il set di membri o tuple da includere nell'asse di sezionamento. Per ulteriori informazioni su asse di sezionamento e asse della query, vedere Restrizione della query con gli assi della query e di sezionamento (MDX).

Per identificare gli assi della query, il cubo sottoposto a query e l'asse di sezionamento, è necessario specificare nell'istruzione MDX SELECT 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 creare membri calcolati per l'inclusione di un asse o 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 a quello della sintassi SQL. Esistono tuttavia alcune differenze fondamentali:

  • 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 non includere assi della query o includerne fino a un massimo di 128 nell'istruzione SELECT. Ogni asse si comporta in modo assolutamente identico, diversamente da SQL dove esistono differenze significative tra il comportamento delle righe e 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. Si comporta come un asse addizionale invisibile nella query che divide i valori visualizzati nelle celle del set di risultati. Diversamente dalla clausola WHERE SQL, non influisce direttamente sui dati visualizzati sull'asse delle righe della query. La funzionalità della clausola SQL WHERE è disponibile mediante altre funzioni MDX funzioni, 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

Concetti