Anderson Gouveia Postado Outubro 25, 2007 Denunciar Share Postado Outubro 25, 2007 Pessoal, boa noite.Tenho uma tabela com vários campos, vou me referir somente aos que tenho dúvida: contrato e data_de_cadastro.Nesta tabela, no campo contrato podem aparecer vários registros repetidos mas com datas diferentes, tipo:contrato data_de_cadastro125478 22/10/2007245879 21/10/2007125478(repete) 25/10/2007(data diferente da primeira)Gostaria de saber como montar um select para que, quando o contrato for repetido, aparecer somente uma vez, com a data maior.Sei que te que ser SELECT DISTINCT, mas como fazer para filtrar somente a maior data?Desde já agradeço.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 25, 2007 Denunciar Share Postado Outubro 25, 2007 Teoricamente...SELECT DISTINCT(contrato) FROM tabela ORDER BY data_de_cadastro DESC Ou... SELECT * FROM tabela GROUP BY contrato ORDER BY data_de_cadastro DESC Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Anderson Gouveia Postado Outubro 26, 2007 Autor Denunciar Share Postado Outubro 26, 2007 Teoricamente...SELECT DISTINCT(contrato) FROM tabela ORDER BY data_de_cadastro DESC Ou... SELECT * FROM tabela GROUP BY contrato ORDER BY data_de_cadastro DESCESerra, boa noite.Com o DISTINCT fico sem a opção de postar a data de cadastro, e preciso dela.Já na segunda opção quase deu certo, se não fosse pelo fato que desta forma a data postada não é a maior, tipo contrao 254156 tem 2 datas: 22/10 e 25/10, esta consulta me retorna a data 22/10, quando preciso da 25/10, e outro detalhe muito importante; preciso usar a função WHERE na consulta, pois tenhos outros campos na tabela que precisam ser filtrados. ex: campo clientes.De qualquer forma, muito obrigado pelo post.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 26, 2007 Denunciar Share Postado Outubro 26, 2007 Quanto a usar a cláusula WHERE, pode colocar, eu não usei porque para o exemplo não tinha motivo...Ali na segunda query, troque DESC por ASC, só acho estranho pois o certo seria DESC já que seria da data maior pra menor, só lembrando que isso só vai funcionar direito se o campo for do tipo DATE ou DATETIME... se for CHAR ou VARCHAR vai dar pau... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Anderson Gouveia
Pessoal, boa noite.
Tenho uma tabela com vários campos, vou me referir somente aos que tenho dúvida: contrato e data_de_cadastro.
Nesta tabela, no campo contrato podem aparecer vários registros repetidos mas com datas diferentes, tipo:
contrato data_de_cadastro
125478 22/10/2007
245879 21/10/2007
125478(repete) 25/10/2007(data diferente da primeira)
Gostaria de saber como montar um select para que, quando o contrato for repetido, aparecer somente uma vez, com a data maior.
Sei que te que ser SELECT DISTINCT, mas como fazer para filtrar somente a maior data?
Desde já agradeço.
Abraços.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
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.