Alex_poty 0 Denunciar post Postado Fevereiro 7, 2009 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
Mário Monteiro 179 Denunciar post Postado Fevereiro 8, 2009 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
Alex_poty 0 Denunciar post Postado Fevereiro 8, 2009 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
Mário Monteiro 179 Denunciar post Postado Fevereiro 8, 2009 que erro deu? Compartilhar este post Link para o post Compartilhar em outros sites
Alex_poty 0 Denunciar post Postado Fevereiro 8, 2009 Sintaxe. Naturalmente não é possível usar subquery após GROUP ok? Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Fevereiro 8, 2009 mas porque tem que agrupar? o que deseja exatamente? Compartilhar este post Link para o post Compartilhar em outros sites
Alex_poty 0 Denunciar post Postado Fevereiro 8, 2009 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
Mário Monteiro 179 Denunciar post Postado Fevereiro 8, 2009 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
Alex_poty 0 Denunciar post Postado Fevereiro 8, 2009 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
Mário Monteiro 179 Denunciar post Postado Fevereiro 8, 2009 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
Alex_poty 0 Denunciar post Postado Fevereiro 8, 2009 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
Alex_poty 0 Denunciar post Postado Fevereiro 11, 2009 Ae galera!!! Alguém sabe como resolver isto? Valewww... Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Fevereiro 12, 2009 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
Alex_poty 0 Denunciar post Postado Fevereiro 13, 2009 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