Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-05-2005
tiagor64 tiagor64 is offline
Miembro
 
Registrado: ene 2005
Posts: 48
Poder: 0
tiagor64 Va por buen camino
consultas de union ordenadas

Hola:

Tengo un problema con una consulta sql de union, necesito unir dos selects, que contienen como campos para ordenar f.entrada y orden_fabricacion, pero necesitaria que el campo orden de fabricacion en una consulta se ordene de forma ascendente y en otra de forma descendente, pero algo pasa porque solo me lo ordena de la forma que le digo en la segunda consulta.

Es posible ordenar en una consulta de union el mismo campo de diferente forma en cada select?? si es posible agradeceria me dijerais que es lo que hago mal, aqui esta el codio que escribo en acces

Código:
 SELECT LINEA2.ORDEN_FABRICACION, chasislinea2.n_chasis, LINEA2.marca, LINEA2.MODELO, chasislinea2.fechaentrada, chasislinea2.fechaverificacion
FROM LINEA2 INNER JOIN chasislinea2 ON LINEA2.XASSIS = chasislinea2.n_chasis
WHERE (((chasislinea2.fechaentrada) Is Null))
ORDER BY LINEA2.ORDEN_FABRICACION DESC;
UNION
SELECT LINEA2.ORDEN_FABRICACION, chasislinea2.n_chasis, LINEA2.marca, LINEA2.MODELO, chasislinea2.fechaentrada, chasislinea2.fechaverificacion
FROM LINEA2 INNER JOIN chasislinea2 ON LINEA2.XASSIS = chasislinea2.n_chasis
WHERE (((chasislinea2.fechaentrada) Is Not Null) AND ((chasislinea2.fechaverificacion) Is Null))
ORDER BY chasislinea2.fechaentrada ASC, LINEA2.ORDEN_FABRICACION ASC;
Tengo necesidad de hacer esto para sacar un listado, asi tomaria el query este como origen de datos.
Si no es posible solucionar el problema asi, me podria decir otra forma de plantearlo.

Gracias.
Responder Con Cita
  #2  
Antiguo 25-05-2005
romullma romullma is offline
Miembro
 
Registrado: may 2005
Posts: 13
Poder: 0
romullma Va por buen camino
No estoy seguro si alguna B.D. soporta lo que quieres, pero por lo general los motores de B.D. aplican la sentencia de ordenación sobre el resultado global de la consulta, es decir sobre las filas recogidas una vez efectuada la unión.
Responder Con Cita
  #3  
Antiguo 25-05-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Consultas de union ordenadas

Hola

En la ayuda de SQL dice que para realizar UNION solo puede usar el Order By en la ultima de ellas. Yo te recomiendo que ese proceso lo realices creando una tabla temporal donde insertes las consultas y ordenes al final la tabla temporal por el criterio que necesita y podras resolver el problema. Yo cada vez que una consulta se me pone dificil recurro a la creacion de tablas y eso no falla.

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer
Responder Con Cita
  #4  
Antiguo 30-05-2005
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 22
ramiretor Va por buen camino
Hola foreros:
No conozco muchos motores, pero me parece que sí se puede ordenar todo lo que traiga la consulta, por ejemplo:
Código SQL [-]
  Select campo1, campo2.....
  union
  select campo1, campo2
  order by 1

El 1 es el campo1 que traerá toda la consulta, si quisiera ordenar por campo2, cambio por order by 2

A ver prueben si funciona en otros motores y hagan favor de comentarlo

Saludos
__________________
Ernesto R.
Responder Con Cita
  #5  
Antiguo 30-05-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
¿En qué motor estas ejecutando la consulta?...

¿Puede hacer esto?, no es prolijo pero puede ser una opción:
Código SQL [-]
SELECT * FROM 
(
   SELECT CAMPO1, CAMPO2 FROM TABLA1
   UNION ALL
   SELECT CAMPO1, CAMPO2 FROM TABLA2
)
ORDER BY 1, 2
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:30:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi