5 Replies Latest reply: Dec 27, 2017 9:23 AM by Alessandro Furtado RSS

    Extração Tempo Casa

    Valerio Moreira dos Santos

      Bom dia!

      Tenho na figura 2 o script de cálculo da figura 1. O problema é que conforme visualizado nesta última o tempo de empresa aparece com x anos, 12 meses e x dias. Portanto o cálculo para, penso anos e meses está incorreto pois 12 meses se torna 1 ano e portanto o resultado deveria ser x anos, 0 meses e x dias. Onde aparecem 12 meses deveria ser 0 meses. Como resolver?

        • Re: Extração Tempo Casa
          Alessandro Furtado

          Valerio,

           

          uma alternativa

           

          QlikView x64 - [C__tmp_Calculo Tempo.qvw_]---2017-12-23 17_41_38.png

           

           


          LOAD

              date(date#(Admitido,'DD/MM/YYYY'))  as Admitido,

              date(date#(Demitidos,'DD/MM/YYYY')) as Demitidos,

              Demitidos - Admitido as Diferenca_Dias,

              Floor((Demitidos - Admitido)/365.25)    as Anos,

              floor((Frac((Demitidos - Admitido)/365.25)*365.25)/30)              as Meses,

              floor(round(frac((Frac((Demitidos - Admitido)/365.25)*365.25)/30)*30,0.01)) as Dias;

          LOAD * inline [

          Admitido  ,Demitidos

          14/12/2015,14/12/2017

          01/12/2016,14/12/2017

          01/12/2010,14/12/2017

          07/12/2015,13/12/2017

          08/12/2017,12/12/2017

          01/12/2017,12/12/2017

          01/12/2017,11/12/2017

          ];



            • Re: Extração Tempo Casa
              Valerio Moreira dos Santos

              untitled.bmpAlessandro, apliquei seu código e ainda assim continuo não obtendo o resultado correto. Veja o print anexo.

              Este é seu código aplicado:

              CDIFinal:

              LOAD *,

                  DtDemitido.ComunicadoDispensa - DtAdmitido.ComunicadoDispensa as Diferenca_Dias,

                  Floor((DtDemitido.ComunicadoDispensa - DtAdmitido.ComunicadoDispensa)/365.25)    as Anos,

                  floor((Frac((DtDemitido.ComunicadoDispensa - DtAdmitido.ComunicadoDispensa)/365.25)*365.25)/30)              as Meses,

                  floor(round(frac((Frac((DtDemitido.ComunicadoDispensa - DtAdmitido.ComunicadoDispensa)/365.25)*365.25)/30)*30,0.01)) as Dias

              Resident ComunicadoDispensa;

               

              As datas são carregadas em formato inteiro (*1) e depois formatadas da seguinte forma na dimensão:

              Date(DtDemitido.ComunicadoDispensa, 'DD/MM/YYYY') e a mesma coisa para DtAdmitido.

               

              Dúvida: Porque 365.25?