Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Saudações Pessoal!!
Aqui na empresa onde trabalho, a verificação de hora extras vai do dia 20 de um mês até o dia 19 do mês seguinte. Por exemplo: as horas extras iniciada no dia 20/05/2018 irá terminar no dia 19/06/2018. Porém ao selecionar o mês no Qlik ele seleciona todos os dias do mês e não esse determinado periodo. Existe uma maneira de conseguir selecionar este determinado periodo de tempo?
Desde já agradeço!!
At.
Bom dia Rodrigo,
Basta fazer um pequeno ajuste no scrip:
Load
Pedido_ID
, datacompleta
, if(day(data) >= 19, month(data+20), month(data)) as mes_ref;
, dia
, Pedido_Cliente_ID;
[vendas]:
select p.Pedido_ID
, cast(p.Pedido_InclusaoData as date) datacompleta
, datepart(DD, cast(p.Pedido_InclusaoData as date)) dia
, p.Pedido_Cliente_ID
from bi.Pedido p
where year(p.Pedido_InclusaoData) = 2018
and month(p.Pedido_InclusaoData) = 5
Acredito que já deva ser o suficiente.
Bom dia Rodrigo,
Vc poderia adcionar uma coluna em sua tabela que possua a data ou o mês de referencia para cálculo, e utilizar esta coluna no seu filtro.
Desta forma vc teria o período correto sendo exibido no seu app.
Bom dia meu caro,
tenta algo assim:
=sum({<data={"<=$(=MakeDate(year(max(data)),month(max(data)),20))>=$(=MakeDate(year(max(data)),(month(max(data))-1),20))"}>} valor)
att
Olá Anderson!
Não entendi muito bem. Desta maneira não teria que mudar o script todo mês?
At.
Olá Pedro!!
Essa formula eu colocaria direto no script?
At.
ajustei a formula para so ir até o dia 19 do mês corrente
=sum({<data={"<=$(=MakeDate(year(max(data)),month(max(data)),19))>=$(=MakeDate(year(max(data)),(month(max(data))-1),20))"}>} valor)
Coloca como formula na aplicação.
Em tese quando você selecionar o mês ele só vai calcular do dia 20 do mês passado ate o dia 19 do mês corrente.
não haveria necessidade de mudar o script, pois o período é padrão:
Load
Pedido_ID
, datacompleta
, month(datacompleta-20) as mes_referencia
, dia
, Pedido_Cliente_ID;
[vendas]:
select p.Pedido_ID
, cast(p.Pedido_InclusaoData as date) datacompleta
, datepart(DD, cast(p.Pedido_InclusaoData as date)) dia
, p.Pedido_Cliente_ID
from bi.Pedido p
where year(p.Pedido_InclusaoData) = 2018
and month(p.Pedido_InclusaoData) = 5
Ele funcionou apenas com o mês corrente... eu preciso que ele consiga selecionar dados anteriores também...
Anderson...
Funcionou... porém tem um pequeno problema. Quando eu seleciono o mês de Maio ele pega os meses de Maio e Junho, porém o correto é pegar os meses Abril e Maio ou seja, do dia 20/04 ao dia 19/05.
Teria como funcionar desta maneira?
Bom dia Rodrigo,
Basta fazer um pequeno ajuste no scrip:
Load
Pedido_ID
, datacompleta
, if(day(data) >= 19, month(data+20), month(data)) as mes_ref;
, dia
, Pedido_Cliente_ID;
[vendas]:
select p.Pedido_ID
, cast(p.Pedido_InclusaoData as date) datacompleta
, datepart(DD, cast(p.Pedido_InclusaoData as date)) dia
, p.Pedido_Cliente_ID
from bi.Pedido p
where year(p.Pedido_InclusaoData) = 2018
and month(p.Pedido_InclusaoData) = 5
Acredito que já deva ser o suficiente.