4 Replies Latest reply: May 9, 2017 12:01 PM by CHRISTYAN ALMEIDA RSS

    Como criar uma tabela Mês apenas com Dias uteís

    LUCIANA SILVEIRA


      Amigos

       

      Poderiam me auxiliar necessito criar uma tabela mês apenas com os dia utéis extraíndo finais de semana e feriados e possivél ???

       

      Como fazer, poderiam me auxiliar.

       

      Agradeço aos amigos

        • Re: Como criar uma tabela Mês apenas com Dias uteís
          Clever Anjos

          +- assim

          Feriados:

          LOAD * INLINE [

              F1

              1/1/2015

              25/12/2015

          ];

           

           

          LOAD

            Data

          WHERE WeekDay(Data) < 5 and not Exists(F1,Data);

          LOAD

            Date(Recno() + $(DataInicio) - 1)  as Data

          AUTOGENERATE (Today() - $(DataInicio));

          • Re: Como criar uma tabela Mês apenas com Dias uteís
            Jonas Melo

            Foi aproveitada a solução do cleveranjos, assim o ano gera diferente de 1900; além de criar uma variável para quantidade de dias que deseja gerar.

             

            Sugiro utilizar uma tabela de feriados ou criar, devido haver feriado municipal/estadual e, outros que mudam a cada ano. Ex.: sexta-feira da paixão.

             

            DataInicio = '01/01/2015'; // Gerar a partir desta data;

            SET v_qtdDias = 364; // Limite de dias

             

             

            LOAD * INLINE [

                F1

                1/1/2015

                04/06/2015  

                25/12/2015

            ];

             

             

            LOAD

              Data

            WHERE WeekDay(Data) < 5 and not Exists(F1,Data);

            LOAD

            Date(Floor(Recno() + '$(DataInicio)'))  as Data

            AUTOGENERATE ('$(v_qtdDias)');

             

            Espero ter ajudado!

            • Re: Como criar uma tabela Mês apenas com Dias uteís
              Clever Anjos

              Já conseguiu solucionar? Se sim, marque uma das respostas como "Correta" e nos ajude a manter os foruns organizados

              • Re: Como criar uma tabela Mês apenas com Dias uteís
                CHRISTYAN ALMEIDA

                Bom dia, tudo bem?

                 

                Segue minha solução para criar calendário com os dias úteis, caso queira desconsiderar algum feriado basta apenas colocar como paramento da função NetWorkDays()

                 

                let vDataMin = Today()-31;//Variavel auxiliar de data minima

                let vDataMax = num(Today());//Variavel auxiliar de data maxima

                 

                CalendarioTemporario:

                Load

                    date($(vDataMin)+(RowNo()-1)) as DataTemp //-1 para começar o incremento do zero

                AutoGenerate ($(vDataMax)-$(vDataMin))+1; //+1 para incluir o limite da data Max

                 

                Calendario:

                Load

                    DataTemp as Data, //Data Completa

                    year(DataTemp) as Ano,

                    month(DataTemp) as Mês,

                    day(DataTemp) as Dia,

                    WeekDay(DataTemp) as DiaSemana //Nome do dia da semana

                Resident CalendarioTemporario

                where NetWorkDays(DataTemp,DataTemp) >=1; //Função que traz a quantidade de dias úteis entre as datas caso seja maior que 1 trazer o dia

                 

                Drop Table CalendarioTemporario;