Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
bittecourt
Contributor II

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


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

4 Replies
Employee
Employee

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

+- 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));

jonas_rezende
Valued Contributor

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

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!

Employee
Employee

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

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

Not applicable

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

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;