11 Replies Latest reply: Feb 23, 2018 1:03 PM by Bruno Ducatti RSS

    Ajuda com Set Analysis

    Bruno Ducatti

      Pessoal, tenho uma tabela de vendas com um campo de data no formato: MM/YYYY.

       

      Este campo está nomeado como "anomes" e tenho um campo "receita" na mesma tabela.

      Eu preciso que conforme o filtro aplicado em "anomes", seja feito um comparativo da receita do período acumulado do ano até o "anomes" selecionado" e o mesmo período do ano anterior.

       

      Ex: Se aplicar o filtro 11/2017, preciso que calcule o acumulado de 2017 até o mês 11 e outra coluna que compare o acumulado de 2016 até o mês 11.

       

      Tentei algumas sintaxes com Set Analysis mas não consegui fazer.

        • Re: Ajuda com Set Analysis
          Alessandro Furtado

          Bruno

           

          Sum({<anomes={">=$(=date(floor(YearStart(Max(anomes)))))<=$(=date(floor(MonthEnd(Max(anomes))))"}>} Receita)

           

          coloquei o date(floor())   pois nao sei o conteudo do seu campo data (se é datetime)

          senao poderia ser

          Sum({<anomes={">=$(=YearStart(Max(anomes)))<=$(=MonthEnd(Max(anomes))"}>} Receita)

           

           

          do ano passado

           

          Sum({<anomes={">=$(=YearStart(max(anomes),-1)<=$(=MonthEnd(max(anomes),-12)"}>} Receita)

           

          *** Não coloquei em um editor de script portanto pode ter algum erro de parêntesis ou algo do gênero...

          • Re: Ajuda com Set Analysis
            Thiago Justen Teixeira

            Vamos lá Bruno.

             

            Para fazer o somatório conforme o filtro realizado:

            Sum({<ANOMES={">=$(=Date(Date#(YearStart(Date(Date#(GetFieldSelections(ANOMES),'mm/yyyy'),'mm/yyyy')),'dd/mm/yyyy'),'mm/yyyy'))<=$(=GetFieldSelections(ANOMES))"}>}RECEITA)

             

            Comparativo do mesmo período no ano anterior:

            Sum({<ANOMES={">=$(=Date(Date#(AddYears(YearStart(Date(Date#(GetFieldSelections(ANOMES),'mm/yyyy'),'dd/mm/yyyy')),-1),'dd/mm/yyyy'),'mm/yyyy'))<=$(=Date(Date#(AddMonths(Date(Date#(AddYears(Date(Date#(GetFieldSelections(ANOMES),'mm/yyyy'),'dd/mm/yyyy'),-1),'dd/mm/yyyy'),'mm/yyyy'),1),'dd/mm/yyyy'),'mm/yyyy'))"}>}RECEITA)


            Por que tanta formatação??

            R:Estou usando o GetFieldSelections, que retorna string. Daí a necessidade de formatar o campo.


            Teste minhas fórmulas com o script abaixo:

            TABELA:

            LOAD

            *,

                Date(Date#(DATA,'dd/mm/yyyy'),'mm/yyyy') as ANOMES;

            LOAD * INLINE [

                 DATA,RECEITA

                01/01/2018,100

                01/02/2018,80

                01/01/2017,85

                01/02/2017,99

                01/01/2016,123,

                01/02/2016,130

            ];

             

             

            Abs e Sucesso!!