Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se um conjunto nomeado for necessário apenas para uma única consulta MDX (Expressões Multidimensionais), você poderá definir esse conjunto nomeado usando a palavra-chave WITH. Um conjunto nomeado criado usando a palavra-chave WITH não existe mais após a conclusão da execução da consulta.
Conforme discutido neste tópico, a sintaxe da palavra-chave WITH é bastante flexível, mesmo acomodando o uso de funções para definir o conjunto nomeado.
Observação
Para obter mais informações sobre conjuntos nomeados, consulte Como criar conjuntos nomeados no MDX (MDX).
Sintaxe da palavra-chave WITH
Use a sintaxe a seguir para adicionar a palavra-chave WITH a uma instrução 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')
Na sintaxe da palavra-chave WITH, o Set_Identifier parâmetro contém o alias do conjunto nomeado. O Set_Expression parâmetro contém a expressão de conjunto à qual o alias do conjunto nomeado se refere.
Exemplo de palavra-chave WITH
A consulta MDX a seguir examina as vendas unitárias dos vários vinhos Chardonnay e Chablis no FoodMart 2000, o banco de dados de exemplo do Microsoft SQL Server 2000 Analysis Services. Essa consulta, embora bastante simples em termos do conjunto de resultados, é longa e complicada quando você precisa manter uma consulta assim.
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
Para facilitar a manutenção da consulta MDX anterior, você pode criar um conjunto nomeado para a consulta usando a palavra-chave WITH. O código a seguir mostra como usar a palavra-chave WITH para criar um conjunto [ChardonnayChablis]nomeado e como o conjunto nomeado torna a instrução SELECT mais curta e fácil de manter.
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
Usando funções junto com a palavra-chave WITH
Embora você possa definir explicitamente cada elemento de um conjunto nomeado, essa abordagem pode produzir uma declaração extensa. Para facilitar a criação e a manutenção de um conjunto nomeado, você pode usar funções MDX para definir os membros.
Por exemplo, o exemplo de consulta MDX a seguir usa as funções Filter, CurrentMember e Name MDX e a função VBA InStr para criar o [ChardonnayChablis] conjunto nomeado. Essa versão do [ChardonnayChablis] conjunto nomeado é a mesma que a versão explicitamente definida mostrada anteriormente neste tópico.
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
Consulte Também
Instrução SELECT (MDX)
Criando conjuntos nomeados Session-Scoped (MDX)