Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2010, 21:53
opeth89
 
Fecha de Ingreso: noviembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Ayuda con una consulta (UNION y ORDER BY)

Hola, tengo que hacer una consulta que devuelva dni, nombre y apellido de las personas que hayan sido jugadores y tecnicos (no necesariamente a la vez, o sea puede haber sido jugador, tecnico, o jugador y tecnico a la vez), todo ordenado por el promedio de la calificacion obtenida como tecnico.

El problema es que yo lo pensé como un union, pero no se como manejar el group by, ya que despues de un union en un group by solamente se pueden usar los alias de las columnas de los selects (group by alias), y no usar el alias dentro de un subselect en el order by.
Si la consulta se puede resolver de otra forma que no sea con un union para evitar el problema del order by, no se cómo poría ser.

Yo lo pensé así:

select jugador_dni as dni, jugador_nombre, jugador_apellido from jugador
union
select tecnico_dni as dni, tecnico_nombre, tecnico_apellido from tecnico
order by (select avg(partido_calificacion_tecnico) from partido where partido_tecnico=dni)

Eso que hice en el order by no se puede, no anda... cómo podría ordenar los resultados de otra forma?

Entre los campos de la tabla partido, aparecen estos campos:
- partido_calificacion_tecnico (calificacion que se le dio a un arbitro en un partido)
- partido_tecnico (este campo es una FK con la tabla tecnico, que tiene tecnico_dni como PK)

Gracias, saludos!