asd1500 0 Denunciar post Postado Setembro 16, 2009 Olá fiz a seguinte consulta no meu banco de dados: select Chamado.idChamado, titulo, Chamado.status, ChamadoStatus.descricao, tecnico, dataA, dataF, Chamado.usuario, Usuario.nome, Usuario.empresa, ChamadoInformacao.dataI from Usuario inner join ChamadoInformacao on Usuario.idUsuario=ChamadoInformacao.usuario inner join Chamado on Chamado.usuario=Usuario.idUsuario inner join ChamadoStatus on Chamado.status=ChamadoStatus.idChamado limit 2000; ela retorna quase tudo do jeito que eu quero. Com uma exceção. Na minha tabela Chamadoinformacao tem os campos idChamado(chave estrangeira), idinfo(primaria) e o campo dataI. Cada chamado nessa tabela pode ter vários dataI. Por esse motivo quando faço a minha pesquisa ele me retorna várias vezes os dados com uma única alteração que é a dataI diferente. Desta forma: 11000 Monitoramento 3 Aguardando Informação 4 2009-06-02 15:26:37 2009-06-04 16:26:37 4 João 2009-02-10 17:56:09 11000 Monitoramento 3 Aguardando Informação 4 2009-06-02 15:26:37 2009-06-04 16:26:37 4 João 2009-02-12 18:50:23 Eu gostaria que mostrasse apenas o resultado da consulta com o maior valor de dataI. No caso a segunda linha. Até agora não consegui fazer. Tentei usar max mas ele só funciona separadamente. Talvez tenha errado na sintaxe Alguém pode ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Eclesiastes 2 Denunciar post Postado Setembro 16, 2009 Tente algo como: select Chamado.idChamado, titulo, Chamado.status, ChamadoStatus.descricao, tecnico, dataA, dataF, Chamado.usuario, Usuario.nome, Usuario.empresa, ChamadoInf.dataI from Usuario inner join ( SELECT MAX(dataI) dataI, usuario FROM ChamadoInformacao GROUP BY usuario ) chamadoInf on Usuario.idUsuario=chamadoInf.usuario inner join Chamado on Chamado.usuario=Usuario.idUsuario inner join ChamadoStatus on Chamado.status=ChamadoStatus.idChamado limit 2000; Compartilhar este post Link para o post Compartilhar em outros sites