Ver Mensaje Individual
  #9  
Antiguo 28-12-2016
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Reputación: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por ronalg Ver Mensaje
La verdad no entendi
Tu tienes:
Código SQL [-]
Campo1,                Campo2, 
'Ventas al contado', CAMPOS....
UNION ALL
'Cuotas', CAMPOS....
UNION ALL
'Facturas', CAMPOS....

ORDER BY Campo2, ....
Y se te estan "entremezclando" precisamente porque el ORDER BY dice que ordene por el campo2 en adelante.

No ordenas por el campo1 porque lo haria alfabetico.

Como lo harias si pusieras los titulos en una tabla? Crearias una tabla llamada TITULOS, con campo ID y Nombre, y el ID lo pondrias en el orden que quieres que salga todo. Luego harias un JOIN con el resto de la consulta y le dirias ORDER BY TITULOS.ID.

UN SELECT ES UNA TABLA (o mas exactamente, una relacion. Una "tabla" normalmente se refiere a una relacion almacenada en disco, pero LOGICAMENTE todo lo que devuelva columnas+filas es una relacion no importa que).

Y puedes CONSTRUIRLA AL VUELO.

Por eso, puedes hacer algo como:


Código SQL [-]
SELECT * FROM (
SELECT 2, 'Ventas al contado'
UNION ALL
SELECT 3, 'Cuotas'
UNION ALL
SELECT 1, 'Facturas'
ORDER BY 1
) q1

De ahi, es facil darse cuenta que puedes reordenar la tabla:

Código SQL [-]
Campo0, Campo1,                Campo2, ...
3, 'Ventas al contado', CAMPOS....
UNION ALL
2, 'Cuotas', CAMPOS....
UNION ALL
1, 'Facturas', CAMPOS....

ORDER BY Campo0, Campo2, ....
__________________
El malabarista.

Última edición por mamcx fecha: 28-12-2016 a las 17:42:26.
Responder Con Cita