[firebase-br] COMO SELECIONAR, DENTRE REGISTROS IGUAIS, O DE MAIOR DATA?

Michel Sugimoto michelsugimoto em yahoo.com.br
Qui Nov 24 14:09:35 -03 2005


Valeu pela dica Kleber,

mas a normalizacao ficou meio inviavel pq tenho 2 estruturas distintas 
de hierarquias para os mesmos dados...

[]s, t+

Kléber Caneva wrote:
> Talvez você devesse rever a tabela e dividir em duas: PILOTOS e CORRIDAS.
> 
> Mas no seu caso você pode usar assim:
> Select
>    PILOTO, NASCIMENTO, DATA_CORRIDA, PONTOS
> From
>   COM
> Where DATA_CORRIDA = (Select MAX(a.DATA_CORRIDA) From COM)
> Order By PONTOS
> 
> Mas ainda aconselho você rever sua normalização.
> 
> []´s
> 
> Kléber Caneva
> 
> 
> ----- Original Message ----- From: "Luiz Carlos" 
> <luizdba em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Tuesday, November 22, 2005 5:42 PM
> Subject: Re: [firebase-br] COMO SELECIONAR, DENTRE REGISTROS IGUAIS, O 
> DE MAIOR DATA?
> 
> 
>> Michel Sugimoto wrote:
>>
>>> Pessoas,
>>>
>>> eu tenho uma tabela, que contem campos duplicados, exceto por um 
>>> campo data. exemplo (COM tabela ficticia):
>>>
>>> TABELA_PILOTO:
>>> PILOTO VARCHAR(30),
>>> NASCIMENTO DATE,
>>> DATA_CORRIDA DATE,
>>> PONTOS_GANHOS INTEGER;  // PONTOS GANHOS NA CORRIDA
>>>
>>> onde eu tenho varios registros com PILOTO e NASCIMENTO (dados que nao 
>>> mudam) repetindo, e a DATA_CORRIDA nao repete.
>>>
>>> Pois bem, preciso de um select em que retorne dentre todas as 
>>> corridas de um piloto, somente o nome do piloto, o nascimento e a 
>>> data da ultima corrida. Por exemplo:
>>>
>>> PILOTO            NASCIMENTO    DATA_CORRIDA    PONTOS_GANHOS
>>>
>>> Michael schummi        10/10/1970    01/02/2005    8
>>> Michael schummi        10/10/1970    01/04/2005    10
>>> Michael schummi        10/10/1970    01/06/2005    1
>>> Michael schummi        10/10/1970    01/08/2005    5
>>> Michael schummi        10/10/1970    01/10/2005    3
>>> Michael schummi        10/10/1970    01/12/2005    6
>>>
>>> o select me retornaria apenas o ultimo registro. Minha base nao esta 
>>> ordenada pela "data da corrida". Na verdade, quero o ultimo registro 
>>> pois vou usar o ultimo ponto ganho...
>>>
>>> Por group by nao da, pq se agrupar por piloto e nascimento, teria que 
>>> pegar a media dos pontos ganhos... e nao eh isso de que eu preciso.
>>>
>>> []s, t+
>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>>> Para editar sua configuração na lista, use o endereço 
>>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>> Tente isso:
>>
>> Select piloto,nascimento, max(data_corrida)  ultima_corrida from 
>> piloto group by piloto,nascimento;
>>
>> Espero ter Ajudado!
>>
>> Luiz Carlos da Silva Soares
>>
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço 
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>> E-mail classificado pelo Identificador de Spam Inteligente Terra.
>> Para alterar a categoria classificada, visite
>> http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1132689588.289752.22134.lusaca.terra.com.br,5361,Des15,Des15 
>>
>>
>> Esta mensagem foi verificada pelo E-mail Protegido Terra.
>> Scan engine: McAfee VirusScan / Atualizado em 22/11/2005 / Versão: 
>> 4.4.00/4634
>> Proteja o seu e-mail Terra: http://mail.terra.com.br/
>>
>>
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> 





Mais detalhes sobre a lista de discussão lista