Compartilhar via


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)