Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

Condição Where Maior Data

Bom dia.

Caros,

Venho aqui novamente pedir um auxilio.

Tenho uma tabela de Ocorrências onde possuo o Código da Ocorrência, Nome da Ocorrência, Data da Ocorrência, Descrição e responsável.  Então eu estou tentando pegar os dados da Ocorrência X com a maior data dentro do mês. Exemplo.

Suponhamos que a ocorrência X ocorreu nos dia 01/01, 10/01 e 18/01, eu quero pegar os dados somente da ocorrência X que ocorreu no dia 18/01, ou seja, a maior data dentro do mês.

Bom tentei fazer isso de algumas formas, mas não obtive sucesso, por isso gostaria de um auxilio de vocês.

1 - tentativa.

Ocorrencias:

load DataOc,

       CodOc,

       NomeOc,

       DescOc,

       RespOc

from ocorrencias.qvd;

Temp-Table:

load date(max(DataOc)) as maiorData resident Ocorrencias;

newOcorrencias:

loas DataOc as [Data OC],

       CodOc,

       NomeOc,

       DescOc,

       RespOc

      resident Ocorrencias where DataOc = maiorData;

Este da Erro dizendo que o campo maiorData não existe.

2 - tentativa.

Ocorrencias:

load DataOc,

       CodOc,

       NomeOc,

       DescOc,

       RespOc

from ocorrencias.qvd;

Temp-Table:

load date(max(DataOc)) as maiorData resident Ocorrencias;

let vMaiorData = PEEK('maiorData);

newOcorrencias:

loas DataOc as [Data OC],

       CodOc,

       NomeOc,

       DescOc,

       RespOc

      resident Ocorrencias where DataOc = $(vMaiorData);

      resident Ocorrencias where DataOc = Date($(vMaiorData));

      resident Ocorrencias where DataOc = Date#($(vMaiorData));

Nesta já fiz as 3 combinações a cima e nenhum deu certo, não carrega os dados.

3- tentativa.

Ocorrencias:

load DataOc,

       CodOc,

       NomeOc,

       DescOc,

       RespOc

from ocorrencias.qvd;

Temp-Table:

load date(max(DataOc)) as maiorData resident Ocorrencias;

newOcorrencias:

loas DataOc as [Data OC],

       CodOc,

       NomeOc,

       DescOc,

       RespOc

      resident Ocorrencias where DataOc =  PEEK('maiorData);

Nesta aqui também não carrega os dados.

Se alguém poder me dar um auxilio nesta questão eu agradeço e muito.

Tags (1)
1 Solution

Accepted Solutions

Re: Condição Where Maior Data

Luiz, você vai ter que usar uma MAX para pegar essa maior data por Oc e depois remover da tabela principal.

Segue um exemplo (pode ser que precise de alteração):

MaiorDataOc:

load

       DISTINCT Date(MAX(DataOc), 'DD/MM/YYYY') & '|' & CodOc as ChaveMaiorDataOc

from ocorrencias.qvd

GROUP BY

       CodOc;

Ocorrencias:

load DataOc,

       CodOc,

       NomeOc,

       DescOc,

       RespOc

from ocorrencias.qvd

WHERE Exists(ChaveMaiorDataOc, DataOc & '|' & CodOc);

DROP TABLE MaiorDataOc;

2 Replies

Re: Condição Where Maior Data

Luiz, você vai ter que usar uma MAX para pegar essa maior data por Oc e depois remover da tabela principal.

Segue um exemplo (pode ser que precise de alteração):

MaiorDataOc:

load

       DISTINCT Date(MAX(DataOc), 'DD/MM/YYYY') & '|' & CodOc as ChaveMaiorDataOc

from ocorrencias.qvd

GROUP BY

       CodOc;

Ocorrencias:

load DataOc,

       CodOc,

       NomeOc,

       DescOc,

       RespOc

from ocorrencias.qvd

WHERE Exists(ChaveMaiorDataOc, DataOc & '|' & CodOc);

DROP TABLE MaiorDataOc;

Not applicable

Re: Condição Where Maior Data

Fiz os Ajustes e Funcionou perfeitamente.

Obrigado Yuri.