7 Replies Latest reply: Jun 20, 2016 7:20 AM by Clever Anjos RSS

    Pega Ultimo valor possível

      Pessoa boa tarde ou bom dia

       

      preciso fazer o seguinte

       

      sum( DISTINCT [Movimento])

       

      só que as veze so registro está vazio ( nao teve movimento) e eu preciso pegar movimento anterior como eu faço isso ?

        • Re: Pega Ultimo valor possível
          Yuri Nicolett

          Você deve estar utilizando isso em um gráfico certo?

          Dê uma olhada na função Below(), essa função vai pegar o valor da linha acima. Caso esta não seja sua necessidade, forneça maiores detalhes de seus dados para podermos ajuda-lo melhor.

          • Re: Pega Ultimo valor possível
            Alessandro Furtado

            Boa tarde Julio.

             

            Nestes casos, muitas vezes eu prefiro gerar estas datas no script.

            Claro que dependendo da quantidade de registros e dos dias entre estas datas, pode-se ter muitos registros adicionais, o que pode ter um "custo" alto (performance/consumo ram). Ai neste caso, trazer o peso para a expressão.....

             

            Segue um exemplo de gerar estas datas faltantes.

             

            Att,

             

            AMF

              • Re: Pega Ultimo valor possível

                Entendi mais ou menos como funciona isso alessandro,
                No caso você cria com today (data de hoje) no caso para pegar o registro anteior da propria dimensão ai uso prevous ?

                  • Re: Pega Ultimo valor possível
                    Alessandro Furtado

                    Sim.

                     

                    Mas no caso eu poderia colocar tanto o dia de hoje para as movimentações (por exemplo de estoque que seriam calculadas por um custo e este eu tenho do dia 1, então geraria ate o dia de hoje) ou mesmo deixar ate a data

                     

                        // Pega da data anterior ate a do registro

                        if(Previous(Prod) = Prod,date#(Previous(Data)),Data)              as Data_Fim

                     

                        //A linha abaixo cria registros da ultima data ate o dia de hoje

                        if(Previous(Prod) = Prod,date#(Previous(Data)),date(Today()))     as Data_Fim

                     

                    Mas veja, esta rotina acima simplesmente me serve para dizer de quando ate quando.

                    A rotina abaixo é de "sabendo" de que data a data vai gerar.  Perceba que tem uma especie de loop dentro do mesmo registro ate que as datas de quando a quando sejam validas  (While + iterno()  ).

                     

                     

                    Final:

                    NoConcatenate

                    LOAD

                       *

                       ,date(Data_Ini + IterNo()-1) as Data_Nova

                    Resident Tmp

                    WHILE Data_Ini + IterNo()-1 <= Data_Fim;

                     

                     

                     

                    AMF

                • Re: Pega Ultimo valor possível
                  Clever Anjos

                  Já conseguiu a resposta? Se sim, escolha uma e marque como "Correta" para fechar o tópico e nos ajudar a manter a comunidade organizada

                  Have fun, be Qlik