Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Thiago_Adriano
Contributor II
Contributor II

Menor Data que seja maior que a data lida no registro

Boa tarde,

Estou precisando criar o campo [Fim] (que está no exemplo abaixo).

Ele deve trazer a menor data do [Inicio] desde que ela seja maior que a data registrada na sua linha e não tenha 'X' no campo [Dia Util].

Ex:  

DataDia UtilInicioFim //campo a ser criado
01/out (ter)101/10/2019 06:2502/10/2019 06:25
02/out (qua)102/10/2019 06:2503/10/2019 06:25
03/out (qui)103/10/2019 06:2504/10/2019 06:25
04/out (sex)104/10/2019 06:2507/10/2019 06:25
05/out (sáb)x05/10/2019 06:2507/10/2019 06:25
06/out (dom)x06/10/2019 06:2507/10/2019 06:25
07/out (seg)107/10/2019 06:25...
2 Replies
pablolabbe
Luminary Alumni
Luminary Alumni

não existe uma função como a minimo.se do Excel no Qlik. Creio que você teria que resolver isso com uma série de comandos script. Dá uma olhada neste artigo

 

https://community.qlik.com/t5/Qlik-Design-Blog/Creating-a-Date-Interval-from-a-Single-Date/ba-p/1467...

Pablo Labbe

Thiago_Adriano
Contributor II
Contributor II
Author

Pois sim, havia chegado a está conclusão e estava usando o PEEK. 

Na fonte que indicou, ele estabelece uma única data inicial e uma data fim.

 

No meu caso a data fim, ela é variável . Seria a menor data , que seja maior que a data inicial em cada linha.

O mais próximo que consegui foi utilizando PEEK([DtInicio],rowno()-1), onde quero buscar a linha anterior, mas ainda não consegui pois todos os resultados retornados são nulos.

 

[DataExcessaoSaldoEstoqueTemp]:

LOAD
Distinct
[Data],

Date([Data] + (6.5/24),'DD-MM-YYYY hh:mm') AS DtInicio,

IF(Text(upper([Ind.Fatia])) <> 'X' , 1 ,Text(upper([Ind.Fatia])) ) as [Ind.Fatia]


FROM [lib://QVD - QlikView - Prd/Corporativo/Cadastros/c_fatia_producao.qvd] (qvd)
where Data > $(vDataIni) ;

DataExcessaoSaldoEstoque_tmp:
Load distinct

RowNo() as linha,
Data,
[DtInicio],
[Ind.Fatia]
resident DataExcessaoSaldoEstoqueTemp
where [Ind.Fatia] = 1
order by Data
;

final:
Load
linha,
Data,
[DtInicio],
[Ind.Fatia],
Peek(DtInicio, RowNo()-1 ) as DtFim

resident DataExcessaoSaldoEstoque_tmp;

 

drop table DataExcessaoSaldoEstoqueTemp,DataExcessaoSaldoEstoque_tmp;