Subconsulta - condição especial

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
edson.amorim
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 135
Registrado em: Qui, 04 Out 2007 3:36 pm
Localização: Belo Horizonte - MG

Caro colega,

preciso de uma subconsulta na qual eu seleciono apenas os registros que teem a data menor ou igual a 01/04/1992. não podendo portanto, aparecer registros que tenham datas alem maior que esta. veja o meu exemplo:

Selecionar tudo

Código   Data
 47      22/03/1992
 47      01/04/1992
 47      05/04/1993
 47      12/03/1994
 --
 43      30/03/1992
 43      24/11/1991
 43      12/10/1990
 --
 44      23/01/1993
 44      01/04/1992
 44      28/02/1991
 --
 45      29/03/1991
 45      29/03/1992
 45      16/02/1990
      
neste caso, eu so quero pegar os códigos: 43 e 45. os outros 2 códigos embora tenham datas > 01/04/1992, não me interessam pois tem tmbem mais datas que são superiores a 01/04/1992.

Agradeço a vossa ajuda!!
rogenaro
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Sex, 30 Mar 2007 7:26 pm
Localização: Londrina - PR
Rafael O. Genaro

Seria algo assim?

Selecionar tudo

select codigo, data
from
(
  select codigo, data, max(data) over (partition by codigo) max_data
  from  tabela
)
where  max_data < to_date('01/04/1992', 'dd/mm/yyyy')
;
ou

Selecionar tudo

select codigo, max(data)
from  tabela
group by codigo
having max(data) < to_date('01/04/1992', 'dd/mm/yyyy') 
ou..

Selecionar tudo

select codigo, data
from   tabela t
where  not exists
(
  select 1
  from  tabela t2
  where  t2.data < to_date('01/04/1992', 'dd/mm/yyyy')
  and    codigo = t.codigo
);
edson.amorim
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 135
Registrado em: Qui, 04 Out 2007 3:36 pm
Localização: Belo Horizonte - MG

Prezado Rafael,

Perfeito, era isso mesmo. testei e funcionou legal!!

Muito Obrigado!!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante