Concetti di base su MDX (MDX)

Data aggiornamento: 17 luglio 2006

È possibile utilizzare espressioni MDX (Multidimensional Expression) per eseguire query in dati multidimensionali o creare espressioni MDX da utilizzare all'interno di un cubo, ma è prima necessario comprendere i concetti e la terminologia relativi alle dimensioni di Microsoft SQL Server 2005 Analysis Services (SSAS). Nella sezione seguente viene fornita una breve descrizione dei concetti di base sulla modellazione dimensionale e della terminologia necessaria. Nelle sezioni successive viene illustrato come applicare questi concetti.

Per ulteriori informazioni, vedere la sezione relativa alle risorse aggiuntive nella pagina SQL Server 2005 – Analysis Services del sito Web Microsoft TechNet. Per ulteriori informazioni su problemi di prestazioni relativi a query e calcoli MDX, vedere la sezione relativa alla scrittura di espressioni MDX efficienti nella Guida alle prestazioni di SQL Server 2005 Analysis Services.

Concetti e termini relativi alla modellazione dimensionale

Un cubo di Microsoft SQL Server 2005 Analysis Services (SSAS) è organizzato in base alle misure, alle dimensioni e agli attributi delle dimensioni. Nella tabella seguente vengono descritti i termini e i concetti relativi alla modellazione dimensionale che è necessario comprendere per utilizzare il linguaggio delle espressioni MDX.

  • Dimensione del database
    Una dimensione del database è un insieme di attributi di dimensione correlati a un attributo chiave, a sua volta correlato ai fatti nella dimensione Measures.
  • Attributo di dimensione
    Un attributo di dimensione è associato a una o più colonne in una tabella della dimensione e contiene membri. Questo tipo di attributo può contenere nomi di clienti, di mesi o di prodotti.
  • Membro
    Un membro è un valore di un attributo di dimensione, inclusa la dimensione Measures. Un membro in una gerarchia può essere un membro foglia, un membro padre, un membro dei dati o un membro (Totale).
  • Misura
    Una misura è un valore di una tabella dei fatti ed è anche denominata fatto. Talvolta un valore nella dimensione Measures viene inoltre genericamente indicato con il nome di membro. Sebbene siano in genere valori numerici, le misure possono essere anche valori stringa.
  • Dimensione Measures
    Una dimensione Measures è la dimensione contenente tutte le misure di un cubo. Una dimensione Measures è un tipo speciale di dimensione in cui i membri vengono aggregati (in genere tramite somma o conteggio) in base al membro corrente di ogni attributo di dimensione esistente in una misura specificata.
  • Gruppo di misure
    Un gruppo di misure è un insieme di misure correlate in un cubo di SQL Server 2005 Analysis Services (in genere misure della stessa tabella dei fatti). In SQL Server 2005 Analysis Services un cubo può contenere più gruppi di misure.
  • Membro (Totale)
    Il membro (Totale) è il valore calcolato di tutti i membri in una gerarchia dell'attributo o in una gerarchia definita dall'utente.
  • Membro calcolato
    Un membro calcolato è un membro della dimensione definito e calcolato in fase di query. È possibile definire un membro calcolato in una query dell'utente o nello script di calcolo MDX e archiviarlo sul server. Un membro calcolato corrisponde alle righe della tabella della dimensione nella dimensione in cui vengono definite.
  • Membro dei dati
    Un membro dei dati è un membro figlio associato a un membro padre in una gerarchia padre-figlio. Un membro dei dati contiene il valore dei dati per il membro padre, anziché il valore aggregato per i figli del padre.
  • Membro padre
    Un membro padre è un membro di una gerarchia padre-figlio contenente il valore aggregato dei figli.
  • Membro foglia
    Un membro foglia è un membro senza figli di una gerarchia.
  • Membro figlio
    Un membro figlio è un membro di una gerarchia sotto il livello principale.
  • Attributo chiave
    L'attributo chiave di una dimensione del database è l'attributo a cui sono collegati, direttamente o indirettamente, tutti gli attributi non chiave della dimensione. In genere, l'attributo chiave è inoltre l'attributo di granularità.
  • Attributo di granularità
    Attributo di una dimensione di un cubo che collega una dimensione ai fatti di un gruppo di misure nella dimensione Measures. Se l'attributo di granularità e l'attributo chiave sono diversi, gli attributi non chiave devono essere collegati, direttamente o indirettamente, all'attributo di granularità. All'interno di un cubo l'attributo di granularità definisce la granularità di una dimensione.
  • Dimensione del cubo
    Una dimensione del cubo è un'istanza della dimensione del database all'interno di un cubo.
  • Gerarchia dell'attributo
    Una gerarchia dell'attributo è una gerarchia di membri dell'attributo contenente i livelli seguenti:

    • Un livello foglia contenente ogni singolo membro dell'attributo, con ogni membro del livello foglia denominato anche membro foglia.
    • Livelli intermedi, se la gerarchia dell'attributo è una gerarchia padre-figlio.
    • Un livello (Totale) facoltativo (IsAggregatable=True) contenente il valore aggregato dei membri foglia della gerarchia dell'attributo, con il membro del livello (Totale) denominato anche membro (Totale).

    Per impostazione predefinita, per ogni attributo di dimensione viene definita una gerarchia dell'attributo (AttributeHierarchyEnabled=True). Le gerarchie dell'attributo sono visibili per impostazione predefinita (AttributeHierarchyVisible=True).

  • Gerarchia bilanciata
    Una gerarchia bilanciata è una gerarchia in cui tra il livello principale e qualsiasi membro foglia esiste lo stesso numero di livelli.
  • Gerarchia incompleta
    Vedere gerarchia sbilanciata.
  • Gerarchia sbilanciata
    Una gerarchia sbilanciata è una gerarchia in cui tra il livello principale e il membro foglia esistono numeri di livelli diversi. La gerarchia padre-figlio è un esempio di gerarchia incompleta. Una gerarchia sbilanciata è anche denominata gerarchia incompleta.
  • Gerarchia padre-figlio
    Una gerarchia padre-figlio è un tipo speciale di gerarchia dell'attributo in cui un attributo della dimensione è impostato sul tipo parent. Una gerarchia padre-figlio è una gerarchia sbilanciata di membri figlio e padre. Una gerarchia padre-figlio contiene i livelli seguenti:

    • Livelli figlio contenenti i figli dei membri padre. I figli di un padre includono i membri dell'attributo che vengono aggregati al membro padre, inclusi i membri dei dati.
    • Livelli intermedi contenenti i membri padre.
    • Un livello (Totale) facoltativo (IsAggregatable=True) contenente il valore aggregato dei membri foglia delle gerarchie padre-figlio, con il membro del livello (Totale) denominato anche membro (Totale).
    • In ogni dimensione può esistere una sola gerarchia padre-figlio, che deve essere correlata all'attributo chiave.
  • Gerarchia definita dall'utente
    Una gerarchia definita dall'utente è una gerarchia bilanciata di gerarchie dell'attributo utilizzata per facilitare l'esplorazione dei dati del cubo da parte degli utenti. Le gerarchie definite dall'utente non aumentano lo spazio del cubo. In determinate circostanze è possibile che i livelli di una gerarchia definita dall'utente siano nascosti e appaiano sbilanciati.
  • Relazione tra attributi
    Una relazione tra attributi è una relazione uno-a-molti tra attributi, ad esempio una relazione tra un attributo della dimensione State e un attributo della dimensione City.
  • Proprietà del membro
    Una proprietà del membro è una proprietà di un membro dell'attributo, ad esempio il sesso di un cliente o il colore di un prodotto.
  • Cella
    Una cella di un cubo è lo spazio esistente nel punto di intersezione tra un membro della dimensione Measures e un membro di ogni gerarchia dell'attributo di un cubo.

    • Un membro della dimensione Measures può essere un membro foglia (un singolo fatto) o un membro aggregato (ad esempio, le vendite aggregate per un determinato anno).
    • Un membro in una dimensione può essere un membro foglia, un membro dei dati, un membro padre o un membro (Totale).
  • Spazio del cubo
    Lo spazio del cubo è il prodotto dei membri delle gerarchie dell'attributo di un cubo per le misure del cubo.
  • Sottocubo
    Un sottocubo è un subset di un cubo che rappresenta una vista filtrata del cubo. I sottocubi possono essere definiti con un'istruzione Scope nello script di calcolo MDX o nella clausola di selezione secondaria in una query MDX.
  • Sottocubo con selezione secondaria
    Un sottocubo definito con una clausola di selezione secondaria in una query MDX include tutti i membri che contengono la definizione del sottocubo, con le conseguenze seguenti:

    • L'inclusione di un membro (Totale) di una gerarchia equivale all'inclusione di ogni membro foglia della gerarchia.
    • Con l'inclusione di qualsiasi membro vengono inclusi anche i predecessori e i discendenti.
    • Con l'inclusione di ogni membro di un livello in una gerarchia definita dall'utente vengono inclusi tutti i membri della gerarchia definita dall'utente, ma è possibile che vengano esclusi i membri di altre gerarchie in cui non sono presenti membri del livello (ad esempio una città che non contiene clienti).
    • Ogni membro (Totale) del cubo esiste sempre nei sottocubi creati a partire dal cubo.
    • I valori di aggregazione inclusi in un sottocubo vengono totalizzati visivamente.

Tuple

Una tupla identifica in modo univoco una cella, in base a una combinazione di membri dell'attributo costituiti da un attributo di ogni gerarchia dell'attributo del cubo. Quando si definisce una tupla in una query o espressione MDX, non è necessario includere in modo esplicito il membro dell'attributo di ogni gerarchia dell'attributo. Se un membro di una gerarchia dell'attributo non viene incluso in una query o espressione in modo esplicito, il membro predefinito della gerarchia dell'attributo è il membro dell'attributo incluso nella tupla in modo implicito. Se non altrimenti definito in modo esplicito in un cubo, il membro predefinito per ogni gerarchia dell'attributo è il membro (Totale), se esistente. Se non esiste un membro (Totale) all'interno di una gerarchia dell'attributo, il membro predefinito è un membro del livello principale della gerarchia dell'attributo. La misura predefinita è la prima misura specificata nel cubo, a meno che non venga definita in modo esplicito una misura predefinita. Per ulteriori informazioni, vedere Definizione di un membro predefinito e DefaultMember (MDX).

La tupla seguente identifica ad esempio una singola cella nel database Adventure Works definendo in modo esplicito un solo membro della dimensione Measures.

(Measures.[Reseller Sales Amount])

Nell'esempio precedente viene identificata in modo univoco la cella costituita dal membro Reseller Sales Amount della dimensione Measures e dal membro predefinito di ogni gerarchia dell'attributo del cubo. Il membro predefinito è il membro (Totale) per ogni gerarchia dell'attributo diversa dalla gerarchia dell'attributo Destination Currency. Il membro predefinito per la gerarchia Destination Currency, è il membro US Dollar. Questo membro predefinito viene definito nello script MDX del cubo Adventure Works.

ms144884.note(it-it,SQL.90).gifImportante:
Il membro di una gerarchia dell'attributo in una tupla viene influenzato anche dalle relazioni definite tra gli attributi all'interno di una dimensione. Per ulteriori informazioni, vedere Relazioni tra attributi e spazio del cubo più avanti.

Nella query seguente viene restituito il valore della cella a cui fa riferimento la tupla specificata nell'esempio precedente, ($80,450.596.98).

SELECT 
Measures.[Reseller Sales Amount] ON COLUMNS 
FROM [Adventure Works]

[!NOTA] Quando in una query si specifica un asse per un set (in questo caso costituito da una sola tupla), è necessario specificare innanzitutto un set per l'asse delle colonne prima di specificare un set per l'asse delle righe. L'asse delle colonne è inoltre noto come Axis(0) o semplicemente 0. Per ulteriori informazioni sulle query MDX, vedere Query MDX di base.

È inoltre possibile utilizzare una tupla in una query per restituire il valore della cella a cui fa riferimento la tupla, come nell'esempio precedente, oppure è possibile utilizzarla in un'espressione per fare riferimento in modo esplicito ai membri specificati nella tupla. La query o l'espressione consente di impiegare funzioni che restituiscono o utilizzano le tuple. Una tupla può essere utilizzata per fare riferimento al valore della cella specificata dalla tupla o per specificare una combinazione di membri quando viene utilizzata in una funzione.

Per dimensionalità di una tupla si intende la sequenza o l'ordine dei membri nella tupla. Dal momento che i membri impliciti ricorrono sempre nello stesso ordine, la dimensionalità viene spesso considerata in relazione ai membri della tupla definiti in modo esplicito. L'ordinamento dei membri della tupla è importante quando si definisce un set di tuple. Nell'esempio seguente vengono inclusi due membri di una tupla nell'asse delle colonne.

SELECT 
([Measures].[Reseller Sales Amount],[Date].[Calendar Year].[CY 2004]) ON COLUMNS 
FROM [Adventure Works]

[!NOTA] Quando si specifica in modo esplicito un membro in una tupla da più di una dimensione, è necessario includere l'intera tupla tra parentesi. Quando si specifica un solo membro in una tupla, le parentesi sono facoltative.

La tupla nella query dell'esempio precedente specifica la restituzione della cella del cubo nel punto di intersezione tra la misura Reseller Sales Amount della dimensione Measures e il membro CY 2004 della gerarchia dell'attributo Calendar Year nella dimensione Date.

[!NOTA] È possibile fare riferimento a un membro dell'attributo tramite il nome o la chiave del membro. Nell'esempio precedente, è possibile sostituire il riferimento a [CY 2004] con &[2004].

Set

Un set è un insieme ordinato di tuple con la stessa dimensionalità. Di seguito è riportato un esempio di set.

SELECT 
   {
      ([Measures].[Reseller Sales Amount],
         [Date].[Calendar Year].[CY 2003]),
      ([Measures].[Reseller Sales Amount],
         [Date].[Calendar Year].[CY 2004])
   } ON COLUMNS 
FROM [Adventure Works]

[!NOTA] Utilizzare le parentesi graffe {} per designare un set di tuple.

Nell'esempio precedente la dimensionalità di ogni tupla del set è la stessa perché il primo membro di ogni tupla è un membro della dimensione Measures e il secondo membro di ogni tupla è un membro della gerarchia dell'attributo Calendar Year. Se il secondo membro di una delle due tuple provenisse da una gerarchia dell'attributo diversa nella dimensione Date (ad esempio Calendar Month), verrebbe visualizzato un errore relativo alla differenza della dimensionalità.

ms144884.note(it-it,SQL.90).gifSuggerimento:
È possibile creare un set con un alias, definito set denominato. L'uso di un set denominato facilita la comprensione e il riutilizzo della query MDX quando si utilizzano espressioni MDX complesse. Per impiegare un set denominato, utilizzare la parola "AS" seguita dal nome alias desiderato alla fine dell'identificatore del set.

Spazio del cubo e Auto Exist

Più indietro in questo argomento lo spazio del cubo è stato definito come il prodotto dei membri delle gerarchie dell'attributo del cubo. Il concetto di Auto Exist limita questo spazio del cubo alle celle effettivamente esistenti. È possibile che membri di una gerarchia dell'attributo non contengano membri di un'altra gerarchia dell'attributo nella stessa dimensione.

Se, ad esempio, si dispone di un cubo con una gerarchia dell'attributo City, una gerarchia dell'attributo Country e una misura Internet Sales Amount, lo spazio di questo cubo include solo i membri che esistono in ogni livello superiore. Se, ad esempio, la gerarchia dell'attributo City include le città di New York, London, Paris, Tokyo e Melbourne e la gerarchia dell'attributo Country include i paesi United States, United Kingdom, France, Japan e Australia, lo spazio del cubo non include lo spazio (cella) nel punto di intersezione tra Paris e United States.

Quando si esegue una query su celle inesistenti, tali celle restituiscono valori null, ovvero non possono contenere calcoli e non è possibile definire un calcolo esegua operazioni di scrittura in questo spazio. L'istruzione seguente, ad esempio, include celle che non esistono.

SELECT [Customer].[Gender].[Gender].Members ON COLUMNS,
{[Customer].[Customer].[Aaron A. Allen]
   ,[Customer].[Customer].[Abigail Clark]} ON ROWS 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

[!NOTA] In questa query viene utilizzata la funzione Members (Set) (MDX) per restituire il set di membri della gerarchia dell'attributo Gender sull'asse delle colonne e questo set viene incrociato con il set di membri specificato della gerarchia dell'attributo Customer sull'asse delle righe.

Quando si esegue la query precedente, nella cella nel punto di intersezione tra Aaron A. Allen e Female viene visualizzato un valore null. Analogamente, viene visualizzato un valore null nella cella nel punto di intersezione tra Abigail Clark e Male. Sebbene non esistano e non possano contenere valori, le celle inesistenti possono essere visualizzate nel risultato restituito da una query.

Quando si utilizza la funzione Crossjoin (MDX) per restituire il prodotto incrociato dei membri della gerarchia dell'attributo dalle gerarchie dell'attributo nella stessa dimensione, Auto Exist limita le tuple da restituire al set di tuple effettivamente esistenti, invece di restituire un prodotto cartesiano completo. Ad esempio, eseguire e quindi esaminare i risultati dell'esecuzione della query seguente.

SELECT CROSSJOIN
   (
      {[Customer].[Country].[United States]},
         [Customer].[State-Province].Members
  ) ON 0 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

[!NOTA] Si noti che per designare l'asse delle colonne viene utilizzato 0, la forma abbreviata per Axis(0), indicante l'asse delle colonne.

La query precedente restituisce solo le celle dei membri di ogni gerarchia dell'attributo della query che esistono in ogni livello superiore. La query precedente può inoltre essere scritta con la nuova variante * della funzione * (Crossjoin) (MDX).

SELECT 
   [Customer].[Country].[United States] * 
      [Customer].[State-Province].Members
ON 0 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

La query precedente può anche essere scritta nel modo seguente:

SELECT [Customer].[State-Province].Members
ON 0 
FROM [Adventure Works]
WHERE (Measures.[Internet Sales Amount],
   [Customer].[Country].[United States])

I valori delle celle restituiti saranno identici, sebbene i metadati nel set di risultati saranno diversi. Con la query precedente, ad esempio, la gerarchia Country è stata spostata sull'asse di sezionamento (nella clausola WHERE) e pertanto non viene visualizzata in modo esplicito nel set di risultati.

Ognuna delle tre query precedenti dimostra l'effetto del comportamento di Auto Exist in SQL Server 2005 Analysis Services.

Gerarchie definite dall'utente e spazio del cubo

Negli esempi precedenti di questo argomento vengono definite le posizioni nello spazio del cubo utilizzando le gerarchie dell'attributo. È tuttavia possibile definire una posizione nello spazio del cubo anche utilizzando gerarchie definite dall'utente in base alle gerarchie dell'attributo in una dimensione. Una gerarchia definita dall'utente è una gerarchia di gerarchie dell'attributo utilizzata per facilitare l'esplorazione dei dati del cubo da parte degli utenti.

È ad esempio possibile scrivere la query CROSSJOIN della sezione precedente anche come segue:

SELECT CROSSJOIN
   (
      {[Customer].[Country].[United States]},
         [Customer].[Customer Geography].[State-Province].Members
   ) 
ON 0 
FROM [Adventure Works]
WHERE Measures.[Internet Sales Amount]

Nella query precedente la gerarchia definita dall'utente Customer Geography all'interno della dimensione Customer viene utilizzata per definire la posizione nello spazio del cubo definita in precedenza utilizzando una gerarchia dell'attributo. La medesima posizione nello spazio del cubo può essere definita utilizzando gerarchie dell'attributo o gerarchie definite dall'utente.

Relazioni tra attributi e spazio del cubo

La definizione delle relazioni tra attributi correlati migliora le prestazioni delle query (facilitando la creazione di aggregazioni appropriate) e influisce sul membro di una gerarchia dell'attributo correlata che include un membro della gerarchia dell'attributo. Quando, ad esempio, si definisce una tupla che include un membro della gerarchia dell'attributo City e la tupla non definisce in modo esplicito il membro della gerarchia dell'attributo Country, ci si potrebbe aspettare che il membro predefinito della gerarchia dell'attributo Country fosse il membro correlato della gerarchia dell'attributo Country. Questo tuttavia si verifica solo se tra la gerarchia dell'attributo City e la gerarchia dell'attributo Country è definita una relazione tra attributi.

Nell'esempio seguente viene restituito il membro di una gerarchia dell'attributo correlata non inclusa in modo esplicito nella query.

WITH MEMBER Measures.x AS 
   Customer.Country.CurrentMember.Name
SELECT Measures.x ON 0,
Customer.City.Members ON 1
FROM [Adventure Works]

[!NOTA] Si noti che viene utilizzata la parola chiave WITH con le funzioni CurrentMember (MDX) e Name (MDX) per creare un membro calcolato da utilizzare nella query. Per ulteriori informazioni, vedere Query MDX di base.

Nella query precedente, viene restituito il nome del membro della gerarchia dell'attributo Country associata a ogni membro della gerarchia dell'attributo State. Viene visualizzato il membro Country previsto, perché tra gli attributi City e Country è definita una relazione. Se tuttavia tra le gerarchie dell'attributo della stessa dimensione non venisse definita alcuna relazione tra attributi, verrebbe restituito il membro (Totale), come illustrato nella query seguente.

WITH MEMBER Measures.x AS 
   Customer.Education.Currentmember.Name
SELECT Measures.x  ON 0, 
Customer.City.Members ON 1
FROM [Adventure Works]

Nella query precedente viene restituito il membro (Totale) ("All Customers"), perché non esiste alcuna relazione tra Education e City. Pertanto, il membro (Totale) della gerarchia dell'attributo Education sarà il membro predefinito della gerarchia dell'attributo Education utilizzata in qualsiasi tupla con la gerarchia dell'attributo City dove nessun membro Education è specificato in modo esplicito.

Contesto di calcolo

Ogni set, membro, tupla o funzione numerica viene eseguita nel contesto dell'intera istruzione o espressione MDX. Quando un argomento, ad esempio una tupla, viene passato a una funzione, vengono specificate in modo esplicito solo alcune coordinate dello spazio del cubo. Le altre coordinate vengono ottenute in base al contesto di calcolo corrente. Il contesto di calcolo per le coordinate di celle e i membri dell'attributo non specificati viene determinato nell'ordine seguente:

  1. Clausola FROM (se applicabile): questa clausola consente di specificare un intero cubo o un sottocubo sotto forma di istruzione SELECT.

  2. Clausola WHERE (se applicabile): clausola, anche nota come asse di sezionamento, in cui si specifica un set, una tupla o un membro che limita i membri restituiti sull'asse delle colonne e delle righe da una query. Concettualmente, il membro predefinito di ogni gerarchia dell'attributo non specificato in modo esplicito sull'asse delle colonne o delle righe fa parte dell'asse di sezionamento.

    [!NOTA] Quando le coordinate di celle per un determinato attributo vengono specificate sia sull'asse di sezionamento che su un altro asse, è possibile che le coordinate specificate nella funzione abbiano la precedenza nel determinare i membri del set sull'asse. Filter (MDX) e Order (MDX) sono esempi di tali funzioni. È possibile filtrare o ordinare un risultato in base ai membri dell'attributo esclusi dal contesto di calcolo dalla clausola WHERE o da un'istruzione SELECT nella clausola FROM.

  3. Set denominati e membri calcolati definiti nella query o nell'espressione.

  4. Tuple e set specificati sugli assi delle righe e delle colonne, utilizzando il membro predefinito per gli attributi non inclusi nell'asse delle righe, delle colonne o di sezionamento.

  5. Celle del cubo o del sottocubo su ogni asse, eliminando le tuple vuote sull'asse e applicando la clausola HAVING.

  6. Per ulteriori informazioni, vedere Definizione del contesto di cubo in una query (MDX).

  7. Nella query seguente il contesto di calcolo per l'asse delle righe viene limitato dal membro dell'attributo Country e dal membro dell'attributo Calendar Year specificati nella clausola WHERE.

SELECT Customer.City.City.Members ON 0
FROM [Adventure Works]
WHERE (Customer.Country.France, [Date].[Calendar].[Calendar Year].[CY 2004],
   Measures.[Internet Sales Amount])
  1. Se, tuttavia, si modifica questa query specificando la funzione FILTER sull'asse delle righe e si utilizza un membro della gerarchia dell'attributo Calendar Year nella funzione FILTER, è possibile modificare il membro dell'attributo della gerarchia dell'attributo Calendar Year utilizzato per specificare il contesto di calcolo per i membri del set sull'asse delle righe.
SELECT FILTER
   (
      Customer.City.City.Members, 
         ([Date].[Calendar].[Calendar Year].[CY 2003],
            Measures.[Internet Order Quantity]) > 75 
   ) ON 0
FROM [Adventure Works]
WHERE (Customer.Country.France,
   [Date].[Calendar].[Calendar Year].[CY 2004],
   Measures.[Internet Sales Amount])
  1. Nella query precedente il contesto di calcolo per le celle nelle tuple incluse nell'asse delle colonne viene filtrato dal membro CY 2003 della gerarchia dell'attributo Calendar Year, anche se il contesto di calcolo nominale per la gerarchia dell'attributo Calendar Year è CY 2004. Viene inoltre filtrato in base alla misura Internet Order Quantity. Tuttavia, dopo avere impostato i membri del set sull'asse delle colonne, il contesto di calcolo per i valori dei membri inclusi nell'asse viene nuovamente determinato dalla clausola WHERE.
ms144884.note(it-it,SQL.90).gifImportante:
Per migliorare le prestazioni delle query, è consigliabile eliminare i membri e le tuple quanto prima durante il processo di risoluzione. In questo modo, i calcoli complessi in fase di query nel set finale di membri vengono eseguiti sul minor numero possibile di celle.

Vedere anche

Concetti

Guida di riferimento al linguaggio MDX

Altre risorse

Guida di riferimento a MDX (Multidimensional Expressions)

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

17 luglio 2006

Contenuto modificato:
  • Aggiornamento dell'esposizione dei concetti a scopo di chiarezza.
  • Aggiunta di esempi aggiornati.