none
Tem como criar esta query MDX?? Somar e dividir incremental ao seguir as colunas.. RRS feed

  • Pergunta

  • Amigos, Bom dia!

    Não sei se é possível, mas estou tendo dificuldade para criar uma query que parece ser simples, mas estou perdudo dentre dezenas de funções que existem (livros maioria inglês).. Vide link para screenshot abaixo, preciso criar média conforme o passar dos meses/colunas..

    soma todas Quantidades anteriores e divide pelo n° de meses anteriores, ou por um período de 3 meses por ex... e vai seguindo nesta lógica.. não consigo criar esta query, consegui para o ano que divide pela quantidade de meses dentro deste ano..

    ou http://img397.imageshack.us/my.php?image=tela2au1.png

    Query que estou tentando..
    AVG(DESCENDANTS([DistrubUsuTempo].[Tempo].CurrentMember,
    [DistrubUsuTempo].[Tempo].[Mês Refr]),
    [Measures].[Quantidade])


    Obrigado,
    Rafael

    terça-feira, 2 de setembro de 2008 13:30

Respostas

  • Bom dia Rafael,

     

    me corrija seu eu estiver enganado, mas me parece que o que você quer é a média do Year-To-Date (YTD), correto?

    O Year-to-date representa a soma de uma métrica até o mês de referência. A função do MDX é YTD. Note que para funcionar sua dimensão tempo deve estar configurada corretamente.

    Veja o exemplo que montei com base no banco de dados do Adventure Works.

    WITH MEMBER [MédiaMesesAnteriores] AS

        'Avg(YTD([Delivery Date].[Calendar].CurrentMember),[Measures].[Sales Amount])'

    SELECT Descendants(

                    [Delivery Date].[Calendar].[Calendar Year].[CY 2004],

                    [Delivery Date].[Calendar].[Month]ON COLUMNS,

                    {[Measures].[Sales Amount],[MédiaMesesAnteriores]} ON ROWS

    FROM [Sales Summary]

     

    Valores retornados:

    January 2004 February 2004 March 2004 April 2004 May 2004 June 2004 July 2004 August 2004
    Sales Amount $3,102,636.77 $4,123,362.50 $4,254,022.94 $3,664,324.69 $5,155,790.29 $5,313,677.10 $826,871.49 $20,631.30
    MédiaMesesAnteriores $3,102,636.77 $3,612,999.64 $3,826,674.07 $3,786,086.73 $4,060,027.44 $4,268,969.05 $3,777,240.83 $3,307,664.64

    terça-feira, 2 de setembro de 2008 14:42

Todas as Respostas

  • Bom dia Rafael,

     

    me corrija seu eu estiver enganado, mas me parece que o que você quer é a média do Year-To-Date (YTD), correto?

    O Year-to-date representa a soma de uma métrica até o mês de referência. A função do MDX é YTD. Note que para funcionar sua dimensão tempo deve estar configurada corretamente.

    Veja o exemplo que montei com base no banco de dados do Adventure Works.

    WITH MEMBER [MédiaMesesAnteriores] AS

        'Avg(YTD([Delivery Date].[Calendar].CurrentMember),[Measures].[Sales Amount])'

    SELECT Descendants(

                    [Delivery Date].[Calendar].[Calendar Year].[CY 2004],

                    [Delivery Date].[Calendar].[Month]ON COLUMNS,

                    {[Measures].[Sales Amount],[MédiaMesesAnteriores]} ON ROWS

    FROM [Sales Summary]

     

    Valores retornados:

    January 2004 February 2004 March 2004 April 2004 May 2004 June 2004 July 2004 August 2004
    Sales Amount $3,102,636.77 $4,123,362.50 $4,254,022.94 $3,664,324.69 $5,155,790.29 $5,313,677.10 $826,871.49 $20,631.30
    MédiaMesesAnteriores $3,102,636.77 $3,612,999.64 $3,826,674.07 $3,786,086.73 $4,060,027.44 $4,268,969.05 $3,777,240.83 $3,307,664.64

    terça-feira, 2 de setembro de 2008 14:42
  • Beleza Half, obrigado..

    como disse parecia simples, mas o dificil e descobrir como.. para este fim que eu pedi serviu certinho, apenas criei um membro calculado tendo em base o que vc me passou..
    AVG(YTD([DistribUsuariosTempo].[Tempo]),([Measures].[Quantidade]))
    apanhei algumas horas na Dimensao de Tempo (que classificava em ordem alfabetica os atributos e nao pelo numero do mes)..

    não querendo pedir muito, mas sabe se tem alguma maneira de colocar um membro calculado apenas depois ou antes (colado) no TOTAL, ao invés de aparecer a cada ítem de colunas???



    Obrigado novamente,
    Rafael
    terça-feira, 2 de setembro de 2008 17:35