Pegar registro com maior data/hora

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
jerry-sc
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 45
Registrado em: Ter, 01 Nov 2011 1:24 pm

Bom dia pessoal,

Eu tenho uma tabela, com a seguinte estrutura: PEDIDO, ITEMPEDIDO, DT_DIVER, DT_ULTIMA_ALT

Nessa tabela, eu tenho vários registros que são "duplicados" exceto, o campo DT_ULTIMA_ALT. Eu preciso pegar um único registro destes, com a maior data/hora que está gravado no campo DT_ULTIMA_ALT.

Alguém tem noção de como fazer isso? Eu tentei trazer todos os registros com o MAX, porém, como possui registros duplicados, ele traz mais de um registro.

Obrigado.
spernega
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Ter, 19 Jun 2007 2:12 pm
Localização: São Paulo - SP

Bom dia jerry,

tenta alguma coisa mais ou menos assim:

Selecionar tudo

select t.PEDIDO, t.ITEMPEDIDO, t.DT_DIVER, t.DT_ULTIMA_AL
from   sua_tabela t
where  DT_ULTIMA_AL = (select max(s.DT_ULTIMA_AL)
                       from   sua_tabela s
                       where  s.PEDIDO = t.PEDIDO
                       and    s.ITEMPEDIDO = t.ITEMPEDIDO
                       and    s.DT_DIVER = t.DT_DIVER);
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 5 visitantes