6 Replies Latest reply: May 29, 2015 10:33 AM by Eduardo Alexandre RSS

    Quantidade de Funcionários por mês

    Egnaldo de Sousa

      Olá Amigos,

       

      Poderiam me ajudar com este ponto:

      Tenho uma tabela com o nome dos funcionários, data de admissão e demissão.

      Preciso apresentar um gráfico com a quantidade de funcionários por mês.

       

      Qual seria a foma mais inteligente de fazer isso?

       

      Anexo um exemplo.

       

      Abs.

        • Re: Quantidade de Funcionários por mês
          Fernando Tonial

          Olá, veja se assim lhe ajuda.

           

          Funcionarios:
          LOAD * INLINE [
              Funcionário, Admissão, Demissão
              Egnaldo, 05/11/2013, 05/02/2014
              Yuri, 05/10/2013, 
              Aderlon, 05/09/2013, 
              Clever, 05/08/2013, 05/03/2014
              Pablo, 05/07/2013, 
              Tonial, 05/06/2013, 
              Kaauan, 05/05/2014, 
          ];
          
          DATA_TMP:
          LOAD Distinct Admissão as DATA_TMP Resident Funcionarios;
          LOAD Distinct Demissão as DATA_TMP Resident Funcionarios;
          
          MaxMin:
          LOAD 
              Max(DATA_TMP) as MaxData,
              Min(DATA_TMP) as MinData
          Resident DATA_TMP;
          
          LET vMaxData = Peek('MaxData');
          LET vMinData = Peek('MinData');
          
          DROP Table DATA_TMP, MaxMin;
          
          TMP_Calendario:
          LOAD 
              Date(MonthStart('$(vMinData)')+(RowNo()-1)) AS Data
          Autogenerate(Date('$(vMaxData)')-Date('$(vMinData)'));
          
          Funcionarios2:
          LEFT JOIN (Funcionarios)
          IntervalMatch (Data) LOAD Admissão, Demissão RESIDENT Funcionarios;
          
          
          Dados:
          LEFT JOIN (TMP_Calendario) 
          LOAD DISTINCT Funcionário, Admissão, Demissão, Data RESIDENT Funcionarios;
          
          DROP TABLE Funcionarios;
          
          RENAME Table TMP_Calendario to Funcionarios;
          

           

          Abraços.

          Tonial.

            • Re: Quantidade de Funcionários por mês
              Egnaldo de Sousa

              Fernando, Obrigado até o momento.

               

              Deu quase tudo certo, com uma pequena exceção, quando efetuo a recarga não é importado o Kaauan que no exemplo foi admitido em 2014.

               

              Consegue me ajudar com este GAP?

               

              Abs.

                • Re: Quantidade de Funcionários por mês
                  Fernando Tonial

                  Retira a função MonthStart() desse load e adiciona a soma + 1.

                   

                  TMP_Calendario: 
                  LOAD  
                  Date(MonthStart('$(vMinData)')+(RowNo()-1)) AS Data 
                  Autogenerate(Date('$(vMaxData)')-Date('$(vMinData)')); 
                  

                   

                  ficando assim:

                   

                  TMP_Calendario: 
                  LOAD  
                  Date(('$(vMinData)')+(RowNo()-1)) AS Data 
                  Autogenerate(Date('$(vMaxData)')-Date('$(vMinData)')+1); 
                  

                   

                  Abraços.

                  Tonial.

                    • Re: Quantidade de Funcionários por mês
                      Egnaldo de Sousa

                      Perfeito Tonial ...

                       

                      Muito Obrigado.

                       

                      Valeu pela força Mestre nicolett.yuri

                       

                      Abs

                      • Re: Quantidade de Funcionários por mês
                        Eduardo Alexandre

                        Mais um código perfeito.

                         

                        Porém no meu (não sei se é alguma falha minha) o campo de demissão estava NULL ou preenchido. Com isso, os funcionários que não foram demitidos não estavam aparecendo na lista.

                         

                        Com essa alteração, ficou correto.

                         

                        Antes:

                         

                        TURNOVER_TEMP:

                        LOAD Distinct

                          COLABORADOR_KEY

                          , RA_ADMISSA AS Admissão

                          , RA_DEMISSA AS Demissão 

                         

                        FROM $(vDiretorioRH)Carga_T\CADASTRO_DE_FUNCIONARIOS_E_AUTONOMOS.QVD (QVD)

                         

                         

                        Depois

                         

                        TURNOVER_TEMP:

                        LOAD Distinct

                          COLABORADOR_KEY

                          , RA_ADMISSA AS Admissão

                        , IF(ISNULL(RA_DEMISSA)='-1','',RA_DEMISSA) AS Demissão

                         

                        FROM $(vDiretorioRH)Carga_T\CADASTRO_DE_FUNCIONARIOS_E_AUTONOMOS.QVD (QVD)

                         

                        ** o campo é tratada da seguinte forma para alimentar o  CADASTRO_DE_FUNCIONARIOS_E_AUTONOMOS.QVD :

                        if(Trim(RA_DEMISSA) = '', null(), Date(Date#(RA_DEMISSA, 'YYYYMMDD'),'DD/MM/YYYY'))
                  • Re: Quantidade de Funcionários por mês
                    Yuri Nicolett

                    Eu faria da mesma forma que o Fernando Tonial, mas colocaria apenas 1 linha por mês