Istruzione CREATE MEMBER (MDX)
Data aggiornamento: 12 dicembre 2006
Crea un membro calcolato.
Sintassi
CREATE [ SESSION ] [HIDDDEN] [ CALCULATED ] MEMBER CURRENTCUBE | Cube_Name.Member_Name
AS MDX_Expression
[,Property_Name = Property_Value, ...n]
......[,SCOPE_ISOLATION = CUBE]
Argomenti
- Member_Name
Espressione stringa valida che specifica il nome di un membro. Specificare un nome completo per creare un membro all'interno di una dimensione diversa da Measures. Se non si specifica un nome completo, il membro verrà creato nella dimensione Measures.
- MDX_Expression
Espressione MDX (Multidimensional Expression) valida.
- Property_Name
Stringa valida che specifica il nome per la proprietà di un membro calcolato.
- Property_Value
Espressione scalare valida che definisce il valore della proprietà di un membro calcolato.
Osservazioni
L'istruzione CREATE MEMBER definisce membri calcolati che rimangono disponibili per tutta la sessione e possono essere pertanto utilizzati in più query durante la sessione. Per ulteriori informazioni, vedere Creazione di membri calcolati con ambito sessione (MDX).
È inoltre possibile definire un membro calcolato da utilizzare in un'unica query. Per definire un membro calcolato limitato a una singola query, è possibile utilizzare la clausola WITH nell'istruzione SELECT. Per ulteriori informazioni, vedere Creazione di membri calcolati con ambito query (MDX).
Property_Name può fare riferimento a proprietà standard o facoltative dei membri calcolati. Le proprietà standard dei membri sono elencate di seguito in questo argomento. I membri calcolati creati tramite un'istruzione CREATE MEMBER priva del valore SESSION hanno ambito sessione. Le stringhe contenute nelle definizioni dei membri calcolati sono delimitate da virgolette doppie, a differenza di quanto avviene con il metodo definito da OLE DB, che specifica che le stringhe devono essere delimitate da virgolette singole.
Specificando un cubo diverso dal cubo connesso viene generato un errore. Pertanto, per identificare il cubo corrente è consigliabile utilizzare CURRENTCUBE anziché il nome di un cubo.
Per ulteriori informazioni sulle proprietà dei membri definite da OLE DB, vedere la documentazione di OLE DB.
Proprietà standard
Ogni membro calcolato dispone di un set di proprietà predefinite. Quando un'applicazione client viene connessa a Microsoft SQL Server 2005 Analysis Services (SSAS), l'amministratore può scegliere se le proprietà predefinite sono supportate o disponibili per essere supportate.
Possono essere disponibili ulteriori proprietà dei membri, a seconda della definizione del cubo. Le proprietà seguenti rappresentano informazioni riguardanti il livello delle dimensioni del cubo.
Identificatore della proprietà | Descrizione |
---|---|
SOLVE_ORDER |
Specifica l'ordine con cui deve essere risolto il membro calcolato nel caso in cui un membro calcolato faccia riferimento a un altro membro calcolato, ovvero, quando i membri calcolati si intersecano. |
FORMAT_STRING |
Specifica una stringa di formato in stile Microsoft Office, che può essere utilizzata dall'applicazione client per la visualizzazione dei valori delle celle. |
VISIBLE |
Determina se il membro calcolato è visibile in un set di righe dello schema. I membri calcolati visibili possono essere aggiunti a un set tramite la funzione AddCalculatedMembers. Un valore diverso da zero indica che il membro calcolato è visibile. Il valore predefinito della proprietà è Visible. I membri calcolati non visibili, per cui il valore è impostato su zero, vengono in genere utilizzati come passaggi intermedi in membri calcolati più complessi. A tali membri calcolati è possibile fare riferimento anche da altri tipi di membri, ad esempio le misure. |
NON_EMPTY_BEHAVIOR |
Specifica la misura o il set utilizzato per determinare il comportamento dei membri calcolati durante la risoluzione delle celle vuote. |
Ambito
I possibili ambiti di un membro calcolato sono elencati nella tabella seguente.
- Ambito query
La visibilità e la durata del membro calcolato sono limitate alla query. Il membro calcolato è definito in una singola query. L'ambito query prevale sull'ambito sessione. Per ulteriori informazioni, vedere Creazione di membri calcolati con ambito query (MDX).
- Ambito sessione
La visibilità e la durata del membro calcolato sono limitate alla sessione in cui è stato creato. Se sul membro calcolato viene utilizzata l'istruzione DROP MEMBER, la durata sarà inferiore alla durata della sessione. L'istruzione CREATE MEMBER crea un membro calcolato con ambito sessione.
Isolamento dell'ambito
In SQL Server 2005 Analysis Services quando uno script MDX di un cubo contiene membri calcolati, per impostazione predefinita tali membri calcolati vengono risolti prima di tutti i calcoli con ambito sessione e di tutti i calcoli definiti da query. Questo comportamento differisce da quello di SQL Server 2000 Analysis Services, dove l'ordine di valutazione può essere utilizzato esplicitamente per inserire un calcolo con ambito sessione o definito da query tra due calcoli a livello di cubo. A causa di questo diverso comportamento i membri calcolati con ambito sessione o query potrebbero non restituire i risultati desiderati in SQL Server 2005 Analysis Services.
[!NOTA] In determinati scenari, con le funzioni Aggregate (MDX) e VisualTotals (MDX) non si verifica questo comportamento.
Il comportamento di SQL Server 2005 Analysis Services consente alle applicazioni client generiche di funzionare con cubi contenenti calcoli complessi senza dover considerare l'implementazione specifica dei calcoli. In determinati scenari, tuttavia, potrebbe essere necessario eseguire membri calcolati con ambito sessione o query prima di determinati calcoli nel cubo e né la funzioneAggregate né la funzione VisualTotals è applicabile. SQL Server 2000 Analysis Services attiva questo comportamento tramite la precisa impostazione della proprietà SOLVE_ORDER sia nel cubo sia nei membri calcolati con ambito sessione o query. Per attivare lo stesso comportamento in SQL Server 2005 Analysis Services, utilizzare la proprietà di calcolo SCOPE_ISOLATION.
[!NOTA] La proprietà di calcolo SCOPE_ISOLATION è stata introdotta in SQL Server 2005 Analysis Services Service Pack 2 (SP2).
Esempio
Nello script seguente è illustrato un esempio di scenario in cui per ottenere il risultato corretto è necessaria la proprietà di calcolo SCOPE_ISOLATION.
Script MDX del cubo:
CREATE MEMBER CURRENTCUBE.Measures.ProfitRatio AS 'Measures.[Store Sales]/Measures.[Store Cost]', SOLVE_ORDER = 10
Query MDX:
WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5
SELECT {USAWithoutWA} ON 0 FROM SALES
WHERE ProfitRatio
Il risultato desiderato della query precedente è il rapporto delle vendite per gli Stati uniti escluso lo stato di Washington (WA), per archiviare i costi per tutti gli Stati Uniti tranne Washington. La query precedente restituisce il risultato desiderato in SQL Server 2000 Analysis Services, ma non in SQL Server 2005 Analysis Services. In SQL Server 2005 Analysis Services restituisce il rapporto relativo agli Stati Uniti meno quello dello stato di Washington, che costituisce un risultato non significativo. Per ottenere il risultato desiderato, è possibile utilizzare la proprietà di calcolo SCOPE_ISOLATION.
Query MDX con l'utilizzo della proprietà di calcolo SCOPE_ISOLATION:
WITH MEMBER [Customer].[Customers].[USA]. USAWithoutWA AS
[Customer].[Customers].[Country].&[USA] - [Customer].[Customers].[State Province.&[WA], SOLVE_ORDER=5
,SCOPE_ISOLATION=CUBE
SELECT {USAWithoutWA} ON 0 FROM SALES
WHERE ProfitRatio
Vedere anche
Altre risorse
Istruzioni MDX per la definizione dei dati (MDX)
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
17 luglio 2006 |
|
12 dicembre 2006 |
|