MaMu
15-04-2008, 12:29:44
Yo estoy haciendo esta consulta a una BD Access (usando ADO y D7):
select top 5 * from (select distinct(A.tema),A.titulo,A.duracion,A.artista,
(select count(B.tema) from ranking B where B.tema=A.tema) as tocado
from ranking A)
Lo que intento es devolver 5 temas musicales de un ranking de temas, y envolver en la variable tocado las veces que fue puesto al aire.
Ahora bien, el TOP solo me limita la cantidad de registros, por lo que la consulta no es real, es decir, los primeros 5 resultados no necesariamente son los temas más tocados, sino los primeros 5 que encontró la consulta.
El problema se ve que radica en el distinct ya que no me permite un
order by tocado
Entonces, como puedo hacer para que la consulta apunte a los 5 temas más tocados? El distinct lo aplico al campo tema porque éste no varía. (un mismo tema puede ser interpretado por diferentes artistas, e incluso pueden diferir en duración)
Saludos y gracias
select top 5 * from (select distinct(A.tema),A.titulo,A.duracion,A.artista,
(select count(B.tema) from ranking B where B.tema=A.tema) as tocado
from ranking A)
Lo que intento es devolver 5 temas musicales de un ranking de temas, y envolver en la variable tocado las veces que fue puesto al aire.
Ahora bien, el TOP solo me limita la cantidad de registros, por lo que la consulta no es real, es decir, los primeros 5 resultados no necesariamente son los temas más tocados, sino los primeros 5 que encontró la consulta.
El problema se ve que radica en el distinct ya que no me permite un
order by tocado
Entonces, como puedo hacer para que la consulta apunte a los 5 temas más tocados? El distinct lo aplico al campo tema porque éste no varía. (un mismo tema puede ser interpretado por diferentes artistas, e incluso pueden diferir en duración)
Saludos y gracias