Criando membros calculados no escopo da consulta (MDX)
Se um membro calculado for necessário para uma única consulta de expressões multidimensionais (MDX), é possível defini-lo usando a palavra-chave WITH. O membro calculado criado com a palavra-chave WITH deixará de existir ao fim da execução da consulta.
Como discutido neste tópico, a sintaxe da palavra-chave WITH é bem flexível, permitindo até que um membro calculado baseie-se em outro membro calculado.
Observação
Para obter mais informações sobre membros calculados, consulte Criando membros calculados 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> ::=
( [ CALCULATED ] MEMBER <CREATE MEMBER body clause>) | <CREATE MEMBER body clause> ::= Member_Identifier AS 'MDX_Expression'
[ <CREATE MEMBER property clause> [ , <CREATE MEMBER property clause> ... ] ]
<CREATE MEMBER property clause> ::=
( MemberProperty_Identifier = Scalar_Expression )
Na sintaxe da palavra-chave WITH, o valor Member_Identifier
é o nome totalmente qualificado do membro calculado. Esse nome totalmente qualificado inclui a dimensão ou o nível a que o membro calculado está associado. O valor MDX_Expression
retorna o valor do membro calculado depois que o valor de expressão foi avaliado. Opcionalmente, os valores de propriedades de células intrínsecas de um membro calculado podem ser especificados fornecendo-se o nome da propriedade de célula no valor MemberProperty_Identifier
e o valor da propriedade de célula no valor Scalar_Expression
.
Exemplos da palavra-chave WITH
A consulta MDX a seguir define um membro calculado, [Measures].[Special Discount]
, calculando um desconto especial com base no valor de desconto original.
WITH
MEMBER [Measures].[Special Discount] AS
[Measures].[Discount Amount] * 1.5
SELECT
[Measures].[Special Discount] on COLUMNS,
NON EMPTY [Product].[Product].MEMBERS ON Rows
FROM [Adventure Works]
WHERE [Product].[Category].[Bikes]
Também é possível criar membros calculados em qualquer ponto de uma hierarquia. Por exemplo, a consulta MDX a seguir define o membro calculado [BigSeller]
para um cubo Vendas hipotético. Esse membro calculado determina se uma loja especificada possui, no mínimo, 100,00 em vendas unitárias para cerveja e vinho. No entanto, a consulta cria o membro calculado [BigSeller]
não como um membro filho da dimensão [Product]
, mas sim como um membro filho do membro [Beer and Wine]
.
WITH
MEMBER [Product].[Beer and Wine].[BigSeller] AS
IIf([Product].[Beer and Wine] > 100, "Yes","No")
SELECT
{[Product].[BigSeller]} ON COLUMNS,
Store.[Store Name].Members ON ROWS
FROM Sales
Membros calculados não têm que depender exclusivamente dos membros existentes em um cubo. O membro calculado também pode basear-se em outros membros calculados definidos na mesma expressão MDX. Por exemplo, a consulta MDX a seguir usa o valor criado pelo primeiro membro calculado, [Measures].[Special Discount]
, para gerar o valor do segundo membro calculado, [Measures].[Special Discounted Amount]
:
WITH
MEMBER [Measures].[Special Discount] AS
[Measures].[Discount Percentage] * 1.5,
FORMAT_STRING = 'Percent'
MEMBER [Measures].[Special Discounted Amount] AS
[Measures].[Reseller Average Unit Price] * [Measures].[Special Discount],
FORMAT_STRING = 'Currency'
SELECT
{[Measures].[Special Discount], [Measures].[Special Discounted Amount]} on COLUMNS,
NON EMPTY [Product].[Product].MEMBERS ON Rows
FROM [Adventure Works]
WHERE [Product].[Category].[Bikes]
Consulte Também
Referência de função MDX (MDX)
Instrução SELECT (MDX)
Criando membros calculados no escopo da sessão (MDX)