4 Replies Latest reply: Apr 30, 2014 4:48 PM by Paulo Paim RSS

    Verificar um período dentro do outro

      Olá Pessoal!

        Preciso verificar se um determinado período  01/02/2012 a 03/03/2012   está dentro  01/01/2012 a 01/01/2013, se estiver descarto o período 01/02/2012 a 03/03/2012  de uma soma ...
        Ex.

      Grupo   Período                                  Valor

        01      01/02/2012 a 03/03/2012       200

        01       01/01/2012 a 01/01/2013       500

        01       01/01/2014 a 01/02/2014       300

       

          Como o primeiro período  em "vermelho" está dentro do intervalo de 01/01/2012 a 01/01/2013 , devo desconsiderar ele e somente somar  (500 + 300) = 800 .... 

       

        Alguém tem alguma uma dica ?

        • Re: Verificar um período dentro do outro
          Eduardo Alexandre

          Paulo,

           

          Partindo do principio que o range de data seja um filtro (**Chamaremos esse filtro de Range_Data**)

           

           

          //Declarar variavel

          vMenorPeriodo = date(min(Range_Data))

          vMaiorPeriodo = date(max(Range_Data))

           

          SUM({<[Data Ocorrência Estoque] = {'>=$(vMenorPeriodo)<=$(vMaiorPeriodo)'}
          >}Valor



          )

           

            • Re: Re: Verificar um período dentro do outro

              Eduardo,

                A questão é mais complicada, pois infelizmente eu não posso aplicar um filtro e devo avaliar cada alinha do Grupo :

               

              Grupo Período                                  Valor

                01      01/02/2012 a 03/03/2012      200

                01      01/01/2012 a 01/01/2013      500

                01      01/01/2014 a 01/02/2014      300

                02      01/02/2012 a 03/03/2012      200

                02      01/01/2013 a 15/01/2013      500

                02      01/01/2013 a 01/02/2013      300

               

                Agora com o grupo 02 eu devo desconsiderar o período 01/01/2013 a 15/01/2013 , pois está dentro do intervalo  01/01/2013 a 01/02/2013    ,devido a  isto,   preciso somar para o grupo 2  ( 200 + 300) ...

               

                Com certeza com o filtro ficaria mais fácil, mas não posso usar filtros o calculo tem que ser dinâmico via LOAD , com For ou While + variáveis de armazenamento para comparar qual período está dentro de qual para ser descartado da soma por grupo.

                • Re: Verificar um período dentro do outro
                  Aderlan Rodrigues

                  Olá Paulo,

                   

                  Da uma olhada na ajuda do QlikView (F1) nos comandos sobre Funções de Data e Hora, serão úteis para você as que começam com IN, ou seja, InMonth, InYear, InYearToDate...


                  Qualquer dúvida, posta um QVW de exemplo que a galera ajuda com o resultado.


                  Grande abraço.

                    • Re: Re: Verificar um período dentro do outro

                      Aderlan,

                        Segue um *.qvw e uma planilha excel de exemplo, conforme comentei hoje preciso somar o campo "Trabalhado" excluindo períodos que tem intersecção conforme ocorre no código 141034 do arquivo anexo. Ex:
                        na coluna Codigo =141034  tenho

                      Dt_Inical              Dt_Final             Trabalhado

                        21/03/20213      12/04/2013            0,766666

                      22/03/2013        11/04/2013            0,166666       ---> Precisa ser excluido da soma da Coluna Trabalhado

                        ...............             ........                  .........

                       

                         Em resumo, preciso excluir os períodos que esteja dentro de outro ....