Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
andrecojel
Contributor

Como pegar períodos de datas distintos em mais de um mês

Bom dia.

Tenho na empresa que trabalho, que controlar os gastos, devido a regras de orçamento, que funcionam da seguinte forma:

Do dia 08 a 12;

Do dia 13 a 17;

Do dia 18 a 22;

Do dia 23 a 27; e

Do da 28 a 07 (mês seguinte).

Ou seja, tenho que separar o que já foi gasto nestes dias, o que não foi difícil (Clever me ajudou), mas agora, para complicar, o meu gestor quer que do dia 28 de um mês eu busque até o dia 07 do mês seguinte.

Mas se seleciono o mês de novembro de 2016 nos filtros, como pegar os 7 dias de dezembro? (sempre vai ser assim, mais 7 dias do mês seguinte)

Agora me quebrou.

Veja o código que tô usando, com a colaboração do Clever (e que funciona muito bem, dentro do mês atual).

     If(day(DT_PAGAMENTO) < 13, 'De 01 a 12',

      If(day(DT_PAGAMENTO) < 18, 'De 13 a 17',

         If(day(DT_PAGAMENTO) < 23, 'De 18 a 22',

    If(day(DT_PAGAMENTO) < 28, 'De 23 a 27', 'De 28 a 30/31')))) as [Vencimentos],

Como fazer para pegar os 07 dias do mês seguinte, mesmo selecionado um determinado mês?

1 Solution

Accepted Solutions
mauroponte
Contributor II

Re: Como pegar períodos de datas distintos em mais de um mês

Marcos,

O que voce pode fazer é no script guardar o Mês de apuração.

Nesse caso se o campo DT_PAGAMENTO estiver entre o dia 1 e o dia 7 o mês de apuração será o mês anterior ao mês da data. Acho que

if(day(DT_PAGAMENTO) <=7,month(AddMonths(DT_PAGAMENTO,-1)),month(DT_PAGAMENTO)) as Mês_Apuração

no seu script resolveria o problema.

Daí no filtro, para esse caso voce utilizaria Mês_Apuração para o filtro, ao invés do seu campo de Mês.

Espero ter ajudado.

3 Replies
JacksonAlfonso
Contributor

Re: Como pegar períodos de datas distintos em mais de um mês

Usando: MakeDate(Year(Data), Month(Data)+1, 7),  a principio resolve, se entendi corretamente sua dúvida !

Ou se você criou um calendário Master, é só usar o campo Ano e Mês do calendário.

mauroponte
Contributor II

Re: Como pegar períodos de datas distintos em mais de um mês

Marcos,

O que voce pode fazer é no script guardar o Mês de apuração.

Nesse caso se o campo DT_PAGAMENTO estiver entre o dia 1 e o dia 7 o mês de apuração será o mês anterior ao mês da data. Acho que

if(day(DT_PAGAMENTO) <=7,month(AddMonths(DT_PAGAMENTO,-1)),month(DT_PAGAMENTO)) as Mês_Apuração

no seu script resolveria o problema.

Daí no filtro, para esse caso voce utilizaria Mês_Apuração para o filtro, ao invés do seu campo de Mês.

Espero ter ajudado.

MVP
MVP

Re: Como pegar períodos de datas distintos em mais de um mês

Marcos,

eu faria o mesmo sugerido pelo mauroponte‌   , criaria o mês usando ou não o addmonths(), de acordo com o dia.