Retornar registros por matrícula e maior data

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
Cayo Magno Fontana
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 23
Registrado em: Sex, 16 Nov 2007 8:12 am
Localização: ES

Boa tarde amigos,

Novamente, venho pedir ajuda a vocês:

Em uma consulta, tenho o seguinte retorno:

MATRICULA CAMPANHA DT_INICIA LOGADO

847123 CLICK 21 25/02/2008 16:47:11 1
847123 Mundo21 25/02/2008 16:48:23 1
847123 Mundo21 25/02/2008 16:50:34 0
839301 CLICK 21 25/02/2008 18:32:30 1
839301 CLICK 21 25/02/2008 18:32:43 0

Gostaria de uma query que me retornasse as linhas da última data de cada matrícula.
Como exemplo, o retorno ficaria assim:

847123 Mundo21 25/02/2008 16:50:34 0
839301 CLICK 21 25/02/2008 18:32:43 0

Penso que deveria usar Group By mas não sei como fazer isso. Fiz esta consulta:

SELECT MATRICULA, CAMPANHA, SUBSTR(DT_INICIA, 0, 10), LOGADO FROM TBL_WBO_LOGONLINE
WHERE MATRICULA = MATRICULA AND DT_INICIA >=
(SELECT MAX(DT_INICIA) FROM TBL_WBO_LOGONLINE)
ORDER BY DT_INICIA DESC, CAMPANHA ASC

Mas só retorna a última linha da tabela por data, eu queria por matrícula, como citei acima.

Gostaria que alguém me explicasse como chegou a esta conclusão, pois gostaria de aprender também!

Obrigado a todos vocês que vem me ajudando.
Abraço!
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

Criança um elogio...o group by é o caminho...

um puxão de orelha...estuda a função max() você vai conseguir com ele...

Ps: desculpa o puxão, mas aprender sozinho sempre dá mai resultado...
nem tentei, mas antes da uma procurada no forum, aposto que alguém já tevem algum problema assim por aqui...
Responder
  • Informação
  • Quem está online

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