3 Replies Latest reply: May 17, 2013 1:30 PM by Fernando Suzuki RSS

    Compara dois campos no Set Analysis

    Rodolfo Ferreira

      Srs,

       

      Tenho uma expressão onde preciso que um campo de data (Dia2) seja comparado com outro campo de data (Dia1) que é o campo do filtro, por razões de “modelagem da nuvem”.

       

      Podem me ajudar?

       

      =Sum( {< [Calendário - Ano] =
      ,
      [Calendário - MêsAno] = {'>=$(vPeriodoUltimosSeisMeses) <=$(vPeriodoAtual)'}
      ,
      [Calendário - Mês] =
      ,
      [Dia2] = {'< [Dia1] = >'}
      >}
      [Contrato - Valor Faturado (VGV)] ) / 1000

        • Re: Compara dois campos no Set Analysis
          Fernando Suzuki

          O campo Dia1 está em uma ilha lógica?

           

          Tenta incluir essa parte no set analysis: Dia2 = {$(=max(Dia1))}

            • Re: Compara dois campos no Set Analysis
              Rodolfo Ferreira

              Não está exatamente numa ilha lógica devido a uma "Link Table" que tem no meio do caminho funcionando como uma ponte.

               

              O filtro na tela está usando o campo pk_DiaMeta (que contém somente números de dia de 1 a 31) mas os cálculos da expressão usam campos que estão na tabela Fato.

              Na tabela Fato o campo equivalente é o pk_calendario_DataCompleta_Dia (que contém somente números de dia de 1 a 31). Os valores de Meta estão na MetaDia e os valores de Venda estão na Fato. Preciso cruzar os dois valores num só gráfico mas tenho somente o campo pk_DiaMeta para filtrar o dia.

               

              Sendo assim, preciso de alguma forma dizer que o campo pk_calendario_DataCompleta_Dia é igual ao pk_DiaMeta ao calcular a expressão.

               

              Não sei se fui claro, segue o print de uma parte da nuvem.

               

              Acredito que comparar esses dois campos na expressão seja a forma menos impactante...

              As chaves que ligam essas tabelas só tem AnoMes e código da filial, por isso ao filtrar o dia de um lado não filtra do outro.print nuvem.jpg

                • Re: Compara dois campos no Set Analysis
                  Fernando Suzuki

                  Ahtá, estava imaginando outro cenário. Então acho q vc não vai filtrar um único dia no Dia1 certo? Se for isso, o set analysis q te passei não vai funcionar. E acredito que não será possível resolver só ajustando o set analysis. Eu vejo duas alternativas:

                  1. ajustar o modelo de dados considerando o dia na amarração entre os dados

                  2. usar um if na expressão, algo do tipo:

                  =Sum( {< [Calendário - Ano] =
                  ,
                  [Calendário - MêsAno] = {'>=$(vPeriodoUltimosSeisMeses) <=$(vPeriodoAtual)'}
                  ,
                  [Calendário - Mês] =
                  >}
                  if(Dia1 = Dia2, [Contrato - Valor Faturado (VGV)] )) / 1000

                   

                  Isso com certeza é menos performático do que a primeira opção. Mas, dependendo da sua nuvem de dados, o impacto na performance não seja tão ruim.