Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Selección con DISTINT

Estas en el tema de Selección con DISTINT en el foro de Bases de Datos General en Foros del Web. Hola a todos, aquí va mi consulta, aver si alguien me puede ayudar: Tengo una BBDD de carreras con los siguientes campos +o- carreras_resultados ID ...
  #1 (permalink)  
Antiguo 02/03/2005, 05:16
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 23 años, 6 meses
Puntos: 0
Selección con DISTINT

Hola a todos, aquí va mi consulta, aver si alguien me puede ayudar:

Tengo una BBDD de carreras con los siguientes campos +o-

carreras_resultados
ID
IDcorredor
tiempo - en modo VARCHAR p.e. 1.22' 1
posicion
distancia
fecha
...

carreras_corredores
IDcorredor
nombre
...

deseo generar una consuta para mostrar los siguientes resultados

- listado de los corredores más rápidos
- listado de los corredores más rápidos x año

Tengo el siguiente código:

SELECT
DISTINCT `IDcorredor` from carreras_resultados
WHERE tiempo<>'' and IDcorredor>0 and LEFT(fecha,4)='2004' order by timepo asc

hago un while y selecciono los datos del correod según la ID, y el tiempo según esta consulta

SELECT
tiempo,distancia,posicion,fecha from carreras_resultados where IDcorredor='EL CORREDOR que viene dentro del while' and tiempo<>'' and LEFT(fecha,4)='$year' order by tiempo asc limit 0,1

y lo que pasa es que no aparecen ordenados los tiempos

Mis preguntas son las siguientes:

Es posible una consulta como esta sin que se repita ningún corredor

SELECT
DISTINCT `IDcorredor`,tiempo from carreras_resultados
WHERE tiempo<>'' and IDcorredor>0 and LEFT(fecha,4)='2004' order by timepo asc

es decit obtener un listado de los mejores tiempos de los corredores por año y ordenados de más rápido a más lento.

No se si me explico, muchas gracias
  #2 (permalink)  
Antiguo 02/03/2005, 07:07
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
Esta consulta debería darte los corredores más rápidos con su tiempo:
Código:
select a.idcorredor, b.nombre, tiempo
from carreras_resultados a join carreras_corredores b on a.idcorredor=b.idcorredor
order by tiempo desc
Si lo que quieres es los más rápidos por año, llega con incluir el año en la selección:
Código:
select a.idcorredor, b.nombre, year(fecha) ano, tiempo
from carreras_resultados a join carreras_corredores b on a.idcorredor=b.idcorredor
order by ano, tiempo desc
Espero que te sirva.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #3 (permalink)  
Antiguo 03/03/2005, 04:21
Avatar de illman  
Fecha de Ingreso: mayo-2001
Mensajes: 115
Antigüedad: 23 años, 6 meses
Puntos: 0
si, el listado da los corredores más rápidos con su tiempo

si, el listado da los corredores más rápidos con su tiempo, pero muestra los corredores repetidos, es decir:

Ben Johnson 1'23''
Carl Malone 1'25''
Ben Johnson 1'27''

mi intención es buscar los corredores más rápidos, no un listado de los mejores tiempos, aunque el planteamiento de la consulta me ha abierto un nuevo camino, muchas gracias, seguiré investigando.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:00.