Ver Mensaje Individual
  #9 (permalink)  
Antiguo 05/03/2009, 12:39
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: UNION ALL no respeta orden de ORDER BY???

Cita:
Iniciado por cuernut Ver Mensaje
Pongo el codigo para que quede más claro:

(select ciclistes.nom,CONCAT('Port: ',ports.nom) AS guanyat,ports.altura AS 'altura o KM en metres' from ciclistes,ports where ports.ciclista=ciclistes.dorsal) UNION ALL (select ciclistes.nom,CONCAT('Etapa: ',etapes.eixida),kms*1000 AS 'altura o KM en metres' from ciclistes,etapes where etapes.ciclista=ciclistes.dorsal);

Tengo 3 columnas:
1. El nombre de los ciclistas.
2. El puerto de montaña y las etapas ganadas por el ciclista (en esta columna han de aparecer primero los puertos y después las etapas sin mezclarse).
3. La altura de los puertos o los kms en metros de las etapas. Esta es la columna que quiero que aparezca ordenada: en el primer select ordenada descendentemente la altura y en el segundo select los kms en metros tambien descendentemente (sin que se mezclen los selects).

Bien es un poco complicado y no se si se podra hacer. Gracias.
No sé si te habré entendido bien, pero prueba esto (yo no lo he probado):

select ciclistes.nom,'A' as CLAS, CONCAT('Port: ',ports.nom) AS guanyat,ports.altura AS altura_o_KM_en_metres from ciclistes,ports where ports.ciclista=ciclistes.dorsal) UNION ALL (select ciclistes.nom,'B' as CLAS, CONCAT('Etapa: ',etapes.eixida),kms*1000 AS altura_o_KM_en_metres from ciclistes,etapes where etapes.ciclista=ciclistes.dorsal) order by CLAS, altura_o_KM_en_metres DESC