ValidMeasure (MDX)

Devolve o valor de uma medida num cubo forçando dimensões inaplicáveis para o seu All level (ou membro padrão se não agregado) ao devolver o resultado para uma tupla especificada.

Syntax

  
ValidMeasure(Tuple_Expression)   

Arguments

Tuple_Expression
Uma expressão válida de Expressões Multidimensionais (MDX) que devolve uma tupla.

Observações

A função ValidMeasure devolve o valor de uma tupla, ignorando atributos que não têm relação com o grupo de medidas da Measure cujo valor a tupla devolve. Um atributo pode não estar relacionado com uma medida por duas razões:

  • A dimensão do atributo não tem relação com o grupo de medidas da medida na tupla.

  • A dimensão do atributo não tem relação com o grupo de medida da medida, mas o atributo de granularidade não é o atributo-chave, e o atributo de granularidade não tem uma relação direta com o atributo na tupla.

O comportamento especificado por esta função é o comportamento padrão do lado do servidor e é controlado pela propriedade IgnoreUnrelatedDimensions no objeto do grupo de medidas.

Para cada atributo na tupla especificada com granularidade (ou seja, onde o elemento na tupla não é o membro Todos), a coordenada atual para cada atributo é movida da seguinte forma:

  • Os atributos relacionados com o membro especificado são movidos para o membro que existe com o membro atual.

  • Os atributos relacionados com o atributo especificado são movidos para o membro All (ou para o membro padrão se a hierarquia não for agregada).

  • Atributos não relacionados são movidos para o membro All (com base na medida).

Example

A consulta seguinte mostra como a função ValidMeasure pode ser usada para substituir o comportamento da propriedade IgnoreUnrelacionedDimensions. No cubo Adventure Works, o grupo de medidas de Alvos de Vendas tem IgnorarDimensões Não Relacionadas definido como False; uma vez que a dimensão de Data se junta a este grupo de medida na granularidade do Trimestre Civil, isto significa que a medida de Quota de Vendas devolverá, por defeito, o valor nulo abaixo do Trimestre Calendário (embora também exista um cálculo no MDX Script que aloca valores até ao nível do Mês). A utilização da função ValidMeasure numa medida calculada pode ser usada para fazer com que a medida de Quota de Vendas se comporte como se o IgnoreUnrelatedDimensions estivesse definido como Verdadeiro e forçar a Quota de Vendas a mostrar o valor do Trimestre Calendário atual.

WITH MEMBER MEASURES.VTEST AS VALIDMEASURE([Measures].[Sales Amount Quota])  
SELECT {[Measures].[Sales Amount Quota], MEASURES.VTEST} ON 0,  
[Date].[Calendar].MEMBERS ON 1  
FROM [Adventure Works]  

De forma semelhante, o grupo de medidas de Alvos de Vendas não tem qualquer relação com a dimensão de Promoção, por isso, abaixo de Todos os Membros de qualquer hierarquia na Promoção, devolverá nulo. Mais uma vez, este comportamento pode ser alterado usando o ValidMeasure:

WITH MEMBER MEASURES.VTEST AS VALIDMEASURE([Measures].[Sales Amount Quota])  
SELECT {[Measures].[Sales Amount Quota], MEASURES.VTEST} ON 0,  
[Promotion].[Promotions].members ON 1  
FROM [Adventure Works]