Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se un set denominato è necessario solo per una singola query MDX (Multidimensional Expressions), è possibile definire tale set denominato usando la parola chiave WITH. Un set denominato creato tramite la parola chiave WITH non esiste più dopo il completamento dell'esecuzione della query.
Come illustrato in questo argomento, la sintassi della parola chiave WITH è abbastanza flessibile, anche accomodando l'uso di funzioni per definire il set denominato.
Annotazioni
Per altre informazioni sui set denominati, vedere Compilazione di set denominati in MDX (MDX).
Sintassi della parola chiave WITH
Usare la sintassi seguente per aggiungere la parola chiave WITH a un'istruzione MDX SELECT:
[ 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> ]
<SELECT WITH clause> ::=
( SET Set_Identifier AS 'Set_Expression')
Nella sintassi per la parola chiave WITH il Set_Identifier parametro contiene l'alias per il set denominato. Il Set_Expression parametro contiene l'espressione set a cui fa riferimento l'alias del set denominato.
Esempio di parola chiave WITH
Nella query MDX seguente vengono esaminate le vendite in unità dei vari vini Chardonnay e Chablis in FoodMart 2000, il database di esempio per Microsoft SQL Server 2000 Analysis Services. Questa query, anche se abbastanza semplice in termini di set di risultati, è lunga e difficile quando è necessario gestire una query di questo tipo.
SELECT
{[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chardonnay], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chablis Wine], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chablis Wine], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chablis Wine], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chablis Wine], [Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chablis Wine]} ON COLUMNS,
{Measures.[Unit Sales]} ON ROWS
FROM Sales
Per semplificare la manutenzione della query MDX precedente, è possibile creare un set denominato per la query usando la parola chiave WITH. Il codice seguente illustra come usare la parola chiave WITH per creare un set denominato, [ChardonnayChablis]e come il set denominato rende l'istruzione SELECT più breve e più semplice da gestire.
WITH SET [ChardonnayChablis] AS
{[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chardonnay],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Good].[Good Chablis Wine],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Pearl].[Pearl Chablis Wine],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Portsmouth].[Portsmouth Chablis Wine],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Top Measure].[Top Measure Chablis Wine],
[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine].[Wine].[Walrus].[Walrus Chablis Wine]}
SELECT
[ChardonnayChablis] ON COLUMNS,
{Measures.[Unit Sales]} ON ROWS
FROM Sales
Uso di funzioni insieme alla parola chiave WITH
Sebbene sia possibile definire in modo esplicito ogni membro di un insieme nominato, questo approccio può produrre una dichiarazione lunga. Per semplificare la creazione e la manutenzione di un set denominato, è possibile usare le funzioni MDX per definire i membri.
L'esempio di query MDX seguente, ad esempio, usa le funzioni MDX Filter, CurrentMember e Name MDX e la funzione InStr VBA per creare il [ChardonnayChablis] set denominato. Questa versione del [ChardonnayChablis] set denominato corrisponde alla versione definita in modo esplicito illustrata in precedenza in questo argomento.
WITH SET [ChardonnayChablis] AS
'Filter([Product].Members, (InStr(1, [Product].CurrentMember.Name, "chardonnay") <> 0) OR (InStr(1, [Product].CurrentMember.Name, "chablis") <> 0))'
SELECT
[ChardonnayChablis] ON COLUMNS,
{Measures.[Unit Sales]} ON ROWS
FROM Sales
Vedere anche
Istruzione SELECT (MDX)
Creazione di set denominati Session-Scoped (MDX)