Ir para conteúdo

POWERED BY:

Arquivado

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

asd1500

refinar consulta

Recommended Posts

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

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

×

Informação importante

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