Ir para conteúdo

POWERED BY:

Arquivado

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

Alex_poty

[Resolvido] como consigo localizar registros agrupados pelo horár

Recommended Posts

select max(datahoradaconexao) ultimadatahora from tabela usuario group by nomedousuario

 

RETORNA APENAS O CAMPO max(data) DA TABELA X.

 

MAS SE EU PRECISAR DE OUTROS DADOS JUNTAMENTE COM A ultimadatahora, NÃO ESTOU CONSEGUINDO, OS DADOS QUE RETORNAM NÃO SÃO A REALIDADE DO QUE ESTÁ ARMAZENADO.

 

select max(datahoradaconexao) ultimadatahora,nomedousuario,numerodoregistro,ipdopcconectado from tabela usuario group by nomedousuario

 

RETORNA A ultimadatahora,nomedousuario COERENTEMENTE MAS numerodoregistro,ipdopcconectado NÃO É O DADO DO REGISTRO EQUIVALENTE, É COMO SE OS DADOS SUB-SEQUENTES AO AGRUPAMENTO (ultimadatahora) NÃO FOSSEM CARREGADOS JUNTAMENTE COM O max().

 

Alguém pode me ajudar?

 

Valewwwww....

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente com subquery

 

 

SELECT datahoradaconexao, nomedousuario, numerodoregistro, ipdopcconectado from tabela usuario WHERE datahoradaconexao IN (SELECT MAX(datahoradaconexao) from tabela usuario)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funciona amigão!!!!!

 

Independente de qualquer coisa, agradeço sua colaboração.

 

Preciso agrupar pela hora mais recente MAX(), por isso preciso utilizar a cláusula GROUP e consequentemente não é possível utilizar subqueries após.

 

Mesmo assim tentei e não funcionou.

 

Vou continuar aguardando uma ajuda.

 

Valewww......

Compartilhar este post


Link para o post
Compartilhar em outros sites

que erro deu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas porque tem que agrupar?

 

o que deseja exatamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu fera!!!!

 

Toda consulta que precisa retornar valores únicos, como sum(), max(), min() utilizando outros registro juntos, precisa da cláusula GROUP.

 

Se a consulta fosse apenas o campo específico não precisaria de agrupamento.

 

select max(campo1) from tabela - funciona perfeitamente.

 

select max(campo1),campo2,campo3,....... from tabela - precisa de agrupamento, senão não funciona.

 

Valewww...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas neste caso o max esta apenas na subquery, voce viu que eu tirei o max na que postei ?

 

na principal voce recupera o campo normalmente e usa o max apenas no where para filtrar

 

voce tentou executar pelo menos os simplesmente entendeu que daria errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara!

 

A subquery que você postou funciona apenas para localizar a últimadatahora de toda tabela.

 

Eu preciso ter o resultado da últimadatahora de todos os usuários de toda tabela entendeu?

 

Por isso preciso agrupar por usuário pra o resultado sair assim:

 

usuário1-ultimadatahora-registrodaconexão-ipdopc

usuário2-ultimadatahora-registrodaconexão-ipdopc

.

.

.

.

usuárioN-ultimadatahora-registrodaconexão-ipdopc

 

Entendeu?

 

Valewww...

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora eu entendi melhor o que deseja

 

tentei aqiu mas nao consegui uma query que lhe sirva

 

e agora com certeza precisará agrupar mesmo, da forma como tinha postado antes nao consegui ver isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é cara,

 

Até tentei agrupar dentro da sub mas o resultado é o mesmo porque na verdade a sub está referenciando o valor isolado da ultimadatahora e portanto não tem como devolver vários resultados. Também tentei colocar a cláusula GROUP fora como sendo mais um elemento do argumento de busca, mas devolve apenas a ultimadatahora de toda a tabela. Enfim, já tentei de tudo também e não cosegui.

 

Vou continuar agardando ajuda.

 

Valewww...

Compartilhar este post


Link para o post
Compartilhar em outros sites

select

a.nomedousuario,

a.datahoradaconexao,

a.numerodoregistro,

a.ipdopcconectado

from tabela_usuario a ,

(

select

max(datahoradaconexao) ultimadatahora,

nomedousuario

from tabela_usuario group by nomedousuario

) b

where a.nomedousuario = b.nomedousuario

AND b.ultimadatahora = a.datahoradaconexao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae giesta!!!!!

 

Funcionou legal e com uma performance legal, certa vez eu utilizei essa recursividade de várias consultas simultâneas na mesma tabela e funcionava direitinho mas nunca pensei em como fazer este recurso pra agrupar os dados dessa mesma forma.

 

Grato pela força.

 

Valewww....

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.