Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
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.

Labels (2)
1 Solution

Accepted Solutions
nicolett_yuri

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;

View solution in original post

2 Replies
nicolett_yuri

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
Author

Fiz os Ajustes e Funcionou perfeitamente.

Obrigado Yuri.