Hola Pablo

El error es el siguiente:

) ORDER BY FECHAHORA
debe decir
) Order by entrada

Perdón por el error

Daniel



El día 30/01/07, Pablo Satelier <[EMAIL PROTECTED]> escribió:

 Hola Daniel, gracias por responder,….te comento que copie y pegué lo que
me dijiste en el editor del SQL, y me tira un cartel que dice.."Sintaxis
incorrecta cerca de la palabra clave ORDER".



Estoy utilizando el SQLServer 7.0, puede ser que esta versión no contemple
esa sintaxis?



Saludos, Pablo.-


 ------------------------------

*De:* gufa@mug.org.ar [mailto:[EMAIL PROTECTED] *En nombre de *Daniel
Calvin
*Enviado el:* Martes, 30 de Enero de 2007 14:14
*Para:* gufa List Member
*Asunto:* [gufa] No me ordena bien el sql



Hola Pablo



debes hacer esto:



Select * from ( <<MiUnionAquí>>) Where <<MiCondicionAqui>> Order by
<<MiOrdenAqui>>



en tu caso



Select * from (



SELECT Horarios.fechahora AS entrada, GETDATE() AS SALIDA,
HORARIOS.IDEMPLEADO, HORARIOS.FECHAHORA,

    EMPLEADOS.ID <http://empleados.id/>, EMPLEADOS.NOMBRE + SPACE(1) +
EMPLEADOS.APELLIDO AS NOMBRE, SPACE(15) AS NOMBREDIA

FROM Horarios INNER JOIN

    Empleados ON Horarios.idEmpleado = Empleados.id <http://empleados.id/>

WHERE (Horarios.Entrada = 1 AND EMPLEADOS.BORRADO = 0)

UNION ALL

(SELECT GETDATE() AS ENTRADA, Horarios.fechahora AS SALIDA,
HORARIOS.IDEMPLEADO, HORARIOS.FECHAHORA,

     EMPLEADOS.ID <http://empleados.id/>, EMPLEADOS.NOMBRE + SPACE(1) +
EMPLEADOS.APELLIDO AS NOMBRE, SPACE(15) AS NOMBREDIA

FROM horarios INNER JOIN

     Empleados ON

     Horarios.idEmpleado = Empleados.id <http://empleados.id/>

WHERE (Horarios.salida = 1 AND EMPLEADOS.BORRADO = 0))

)

ORDER BY FECHAHORA



El día 30/01/07, *Pablo Satelier* <[EMAIL PROTECTED]> escribió:

Hola gente,….los molesto por un tema que debería ser de muy fácil
solución, pero la verdad que me esta quemando el bocho,..les comento:

            ..tengo una consulta SQL, que tira al servidor,..la consulta
es asi…



SELECT Horarios.fechahora AS entrada, GETDATE() AS SALIDA,
HORARIOS.IDEMPLEADO, HORARIOS.FECHAHORA,

    EMPLEADOS.ID <http://empleados.id/>, EMPLEADOS.NOMBRE + SPACE(1) +
EMPLEADOS.APELLIDO AS NOMBRE, SPACE(15) AS NOMBREDIA

FROM Horarios INNER JOIN

    Empleados ON Horarios.idEmpleado = Empleados.id <http://empleados.id/>

WHERE (Horarios.Entrada = 1 AND EMPLEADOS.BORRADO = 0)

UNION ALL

(SELECT GETDATE() AS ENTRADA, Horarios.fechahora AS SALIDA,
HORARIOS.IDEMPLEADO, HORARIOS.FECHAHORA,

     EMPLEADOS.ID <http://empleados.id/>, EMPLEADOS.NOMBRE + SPACE(1) +
EMPLEADOS.APELLIDO AS NOMBRE, SPACE(15) AS NOMBREDIA

FROM horarios INNER JOIN

     Empleados ON

     Horarios.idEmpleado = Empleados.id <http://empleados.id/>

WHERE (Horarios.salida = 1 AND EMPLEADOS.BORRADO = 0))

ORDER BY FECHAHORA



…el problema es que no me ordena por la columna de "FECHAHORA".

Me parece que lo que esta haciendo es ordenar cada select por separado, es
decir ordena el select antes del union, y el otro después del union, y los
pone uno arriba de otro, pero entre ellos, no estan ordenados.





Alguien tiene alguna pista de qué es lo que estoy haciendo mal??

Desde ya muchas gracias, saludos

Pablo.-




--
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional




--
Daniel A. Calvin
Cooperator Team Member
http://www.cooperator.com.ar
Microsoft Certified Professional

Responder a