Condividi tramite


Istruzione CREATE MEMBER (MDX)

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

  • Cube_Name
    Espressione stringa valida che fornisce il nome del cubo in cui il membro verrà creato.

  • 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.

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

Quando uno script MDX (Multidimensional Expressions) di un cubo contiene membri calcolati, per impostazione predefinita tali membri calcolati vengono risolti prima di tutti i calcoli con ambito di sessione e di tutti i calcoli definiti nelle query.

[!NOTA]

In determinati scenari, la funzione Aggregate (MDX) e la funzione VisualTotals (MDX) non presentano questo comportamento.

Il comportamento consente alle applicazioni client generiche di utilizzare cubi contenenti calcoli complessi senza dover considerare l'implementazione specifica dei calcoli. In determinati scenari, tuttavia, potrebbe essere necessario eseguire i membri calcolati con ambito di sessione o query prima di determinati calcoli nel cubo e né la funzioneAggregate né la funzione VisualTotals è applicabile. A tale scopo, utilizzare la proprietà di calcolo SCOPE_ISOLATION.

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 non restituisce il risultato desiderato. Il risultato dato è il rapporto di USA meno il rapporto di WA, ovvero 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

Proprietà standard

Ogni membro calcolato dispone di un set di proprietà predefinite. Quando un'applicazione client viene connessa a MicrosoftAnalysis Services, 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

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

Una stringa di formato in stile Microsoft Office che può essere utilizzata dall'applicazione client per la visualizzazione dei valori delle celle.

VISIBLE

Un valore che indica 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

La misura o il set utilizzato per determinare il comportamento dei membri calcolati durante la risoluzione delle celle vuote.

CAPTION

Una stringa che l'applicazione client utilizza come didascalia per il membro.

DISPLAY_FOLDER

Una stringa che identifica il percorso della cartella di visualizzazione che l'applicazione client utilizza per mostrarla al membro. Il separatore di livello di cartella è definito dall'applicazione client. Per gli strumenti e client forniti da Analysis Services, la barra rovesciata (\) è il separatore di livello. Per fornire più cartelle di visualizzazione per un membro definito, utilizzare un punto e virgola (;) per separare le cartelle.

ASSOCIATED_MEASURE_GROUP

Il nome del gruppo di misure al quale questo membro è associato.