Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda para selecionar ultimo registro de cada cliente


Sérgio L. Glovatinski Jr

Pergunta

Olá amigos.

Estou com o seguinte quadro.

Tenho uma tabela com id, cliente, ip, data, hora

HWmBBf4.png

Esta tabela é atualizada pelos clientes de tempo em tempo, preciso de um sql para pegar o ultimo envio de cada cliente.

O comando que cheguei mais perto foi:

SELECT MAX(id) as maxid, id, cliente, ip, data, hora from lista GROUP BY cliente

porém o resultado não volta com os dados corretos, vejam: (coloquei a coluna maxid somente para verem como não puxa os dados corretos)

seWdsn8.png

Alguém tem uma dica para me ajudar ?

Obrigado

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Quando se usa group by deve-se utilizar somente os campos que comporão o resultado. Nesta caso, o id, para que você pegue o maior utilizando a função max e o campo cliente que será utilizado pelo group by.

Como você quer outros campos, então você vederá fazer um join deste consulta com esta nova que usa os outos campos.

Veja abaixo:

SELECT l1.id, l1.cliente, l1.ip, l1.data, l1.hora 
FROM lista l1 
INNER JOIN (SELECT l2.cliente, MAX(l2.id) as maxid 
            FROM lista l2 
            GROUP BY l2.cliente
           ) l3 ON l3.maxid = l1.id
Link para o comentário
Compartilhar em outros sites

  • 0

Não testei o desempenho comparado a resposta de Denis Courcy. Mas tenho essa alternativa para o mesmo problema.

SELECT * 
FROM my_table_name 
WHERE id IN (
	SELECT MAX(id) 
	FROM my_table_name 
	GROUP BY cliente 
	/*pode adicionar filtros com HAVING*/
);

Não tenho conhecimento profundo em SQL, mas achei essa abordagem bem simples de entender.

Editado por DACLA Automação
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...