Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Joao Batista S.

Selecionar Registro no SQL

Recommended Posts

Olá.. pessoal...

 

Estou com o seguinte problema, tenho a sql abaixo onde seleciono em uma tabela os leilões agrupados por id do leilão e tenho que pegar o último registro inserido na tabela.

Para isso faço assim, parametrizo por MAX(a.data) no SELECT porém, ele pega certo o campo data (vem a ultima hora) mas os demais campos vem da primeira hora do registro, como valor, id do usuario, etc...

 

 


SELECT a.idUsuario, a.idLeilao, a.valor,c.total_lances, MAX(a.data), c.titulo, DATE_FORMAT(a.data, '%d/%m/%y') as data_formatada,
DATE_FORMAT(a.data, '%H:%i') as hora_formatada, b.nome, b.usuario FROM lances a
INNER JOIN usuarios b ON a.idUsuario = b.id
INNER JOIN leilao c ON a.idLeilao = c.id
GROUP BY a.idLeilao

 

desde já agradeço ajuda..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma solução :

 

SELECT a.idUsuario, a.idLeilao, a.valor,c.total_lances, MAX(a.data), c.titulo, DATE_FORMAT(a.data, '%d/%m/%y') as data_formatada,
DATE_FORMAT(a.data, '%H:%i') as hora_formatada, b.nome, b.usuario 
FROM lances a,usuarios b,leilao c
where a.idUsuario = b.id
and a.idLeilao = c.id
and a.data = (select max(d.data)
             from lances d
             where a.idUsuario = d.idUsuario 
             and a.idLeilao = d.idLeilao)
GROUP BY a.idLeilao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta uma descrição das tabelas e um chinês resumido do resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.