Pedro Gaz Postado Abril 9, 2010 Denunciar Share Postado Abril 9, 2010 Pessoal, tenho a seguinte tabelaKM | DATA | DADO__________________________km-01 | 10/04/2010 | dadokm-02 | 12/02/2010 | dadokm-03 | 20/02/2010 | dadokm-04 | 05/03/2010 | dadokm-02 | 22/03/2010 | dadokm-01 | 10/03/2010 | dadokm-03 | 05/04/2010 | dadoprecio que a consulta me retorne somente a ultima ocorrencia para cada quilometro, no caso a saida teria que ser:KM | DATA | DADO___________________________km-01 | 10/04/2010 | dadokm-02 | 22/03/2010 | dadokm-03 | 05/04/2010 | dadokm-04 | 05/03/2010 | dadoOnde, o ultimo dado lancado no km-01 foi na data 10/04/2010, no km-02 o ultimo dado foi 22/03/2010... e assim por diante... alguém poderia me ajudar?? Já vou adiantanto que somente o Group By não me serve.... Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Abril 12, 2010 Denunciar Share Postado Abril 12, 2010 alguém poderia me ajudar?? Já vou adiantanto que somente o Group By não me serve....Oi, Pedro!O Group by serve se a data estiver no formato date. O formato date é armazenado, no MySQL, no formato AAAA-MM-DD.SELECT KM, MAX(DATA) AS DATA, dado FROM tabela GROUP BY KM Link para o comentário Compartilhar em outros sites More sharing options...
0 Pedro Gaz Postado Abril 12, 2010 Autor Denunciar Share Postado Abril 12, 2010 sim.. mas o problema não é a formatação das datas... Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Courcy Postado Abril 13, 2010 Denunciar Share Postado Abril 13, 2010 sim.. mas o problema não é a formatação das datas...Fiz o teste com a instrução abaixo e obtive o resultado que você deseja.Então o problema pode ser outro que você ainda não identificou.create temporary table teste2( KM char(5), `DATA` date, DADO char (10)) engine = memory; insert into teste2 (km, `data`, dado) values ('km-01', str_to_date('10/04/2010', '%d/%m/%Y'), 'dado'), ('km-02', str_to_date('12/02/2010', '%d/%m/%Y'), 'dado'), ('km-03', str_to_date('20/02/2010', '%d/%m/%Y'), 'dado'), ('km-04', str_to_date('05/03/2010', '%d/%m/%Y'), 'dado'), ('km-02', str_to_date('22/03/2010', '%d/%m/%Y'), 'dado'), ('km-01', str_to_date('10/03/2010', '%d/%m/%Y'), 'dado'), ('km-03', str_to_date('05/04/2010', '%d/%m/%Y'), 'dado'); SELECT KM, MAX(DATA) AS DATA, dado FROM teste2 GROUP BY KM; respondeu:KM DATA dado km-01 2010-04-10 dado km-02 2010-03-22 dado km-03 2010-04-05 dado km-04 2010-03-05 dado Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Pedro Gaz
Pessoal, tenho a seguinte tabela
KM | DATA | DADO
__________________________
km-01 | 10/04/2010 | dado
km-02 | 12/02/2010 | dado
km-03 | 20/02/2010 | dado
km-04 | 05/03/2010 | dado
km-02 | 22/03/2010 | dado
km-01 | 10/03/2010 | dado
km-03 | 05/04/2010 | dado
precio que a consulta me retorne somente a ultima ocorrencia para cada quilometro, no caso a saida teria que ser:
KM | DATA | DADO
___________________________
km-01 | 10/04/2010 | dado
km-02 | 22/03/2010 | dado
km-03 | 05/04/2010 | dado
km-04 | 05/03/2010 | dado
Onde, o ultimo dado lancado no km-01 foi na data 10/04/2010, no km-02 o ultimo dado foi 22/03/2010... e assim por diante...
alguém poderia me ajudar?? Já vou adiantanto que somente o Group By não me serve....
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados