Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Re - ordenar consulta de un TQuery (https://www.clubdelphi.com/foros/showthread.php?t=25819)

ContraVeneno 05-10-2005 00:06:13

Re - ordenar consulta de un TQuery
 
Saludos a todos
Estoy utilizando un TQuery para mi consulta donde requiero las últimas fechas, y hago lo siguiente:
Código SQL [-]
SELECT TOP 3 Fecha FROM Tabla ORDER BY Fecha DESC
Esto me da como resultado las últimas tres fechas ordenadas de manera descendente.

¿como hago para ordenar el resultado de manera ascendente?

No puedo cambiar la parte "Fecha DESC" porque entonces estaría obteniendo las tres primeras en lugar de las últimas.
Busque en la ayuda de SQL Server, pero no encontre nada que fuera lo contrario a usar TOP. Y al buscar en otros lados, todos los ejemplos terminan por quitar la cláusula DESC del query, cosa que yo no puedo hacer.
Gracias de antemano por sus sugerencias.

vtdeleon 05-10-2005 01:26:31

Saludos

No tengo instalado SQL Server por lo que no sé si esta sentencia la soporte
Código SQL [-]
select * 
from (
     SELECT TOP 3 Fecha 
     FROM Tabla ORDER BY Fecha DESC)
Order By 1 asc

ContraVeneno 05-10-2005 16:30:00

Gracias por la propuesta, pero desafortunadamente marca error de sintaxis en la parte de 'from (select... )'. :rolleyes:

Chente(rMan) 05-10-2005 16:35:44

¿y asi?

Código SQL [-]
select * 
from (
     SELECT TOP 3 Fecha 
     FROM Tabla ORDER BY Fecha DESC) t
Order By 1 asc


Saludos.

Vicente López.

lucasarts_18 05-10-2005 16:47:30

Hola.

Esto si que funciona, por lo menos a mí y creo que a nuestro amigo Contraveneno también le servirá...

:)

vtdeleon 05-10-2005 16:48:49

Saludos

Creo que al igual que Firebird, SQL Server no soporta este tipo de consulta.

Como antes lo habia dicho, en un anterior hilo, es extraño que un potente Motor de BD como SQL Server no soporte esta Sub-consulta y tablas planas como FoxPro sí la soporte:confused:

Chente(rMan) 05-10-2005 16:54:59

:confused: vtdeleon, si funciona, si te das cuenta lo único que agregue fue un alias para la subconsulta, de hecho lo esta corroborando el amigo lucasarts_18.


Saludos.

Vicente López.

vtdeleon 05-10-2005 16:57:32

Saludos

Cita:

Empezado por Chente(rMan)
vtdeleon, si funciona,

Ooops, disculpa. Se me adelanto por un minuto el amigo lucasarts_18. mientras estaba escribiendo.

lucasarts_18 05-10-2005 17:07:32

Cita:

Empezado por vtdeleon
Saludos

Creo que al igual que Firebird, SQL Server no soporta este tipo de consulta.

Como antes lo habia dicho, en un anterior hilo, es extraño que un potente Motor de BD como SQL Server no soporte esta Sub-consulta y tablas planas como FoxPro sí la soporte:confused:

Hola vtdeleon:

Con referente a Firebird me he enterado por un amigo que si soporta Subconsultas, no sé hasta que punto ya que no he probado Firebird, pero me comentaron que trae una BD Employee (de prueba) y que los procedimientos almacenados de esa BD efectivamente utilizan Sub-Consultas....echa un vistazo a esa BD, no pierdes nada..

Hasta Luego..

ContraVeneno 05-10-2005 17:30:27

Y lo corroboro yo tambien. Agregándole el alias a la consulta como sugirió Chente(rMan) me funcionó perfecto. Muchas gracias a todos por su tiempo. y gracias a vtdeleon por la idea y a Chente(rMan) por el complemento.

vtdeleon 05-10-2005 17:42:00

Saludos

Cita:

Empezado por lucasarts_18
Con referente a Firebird me he enterado por un amigo que si soporta Subconsultas

Excusemen, Me expresé mal. Me refería a este tipo de consulta:
Código SQL [-]
SELECT *
FROM (SELECT CODEMP
        from empleados)
Con Firebird-1.5.2.4731-Win32 y no me funciono:confused:

lucasarts_18 05-10-2005 18:04:13

Hola:

Ok....entonces no soporta una subconsulta que devuelva mas de un registro o algo así...

Hasta luego..;)

aurafern 11-10-2005 23:07:47

En FireBird no funciona el TOP?
 
Deseo saber cómo se solucionaría este problema en FireBird.

coloque esta consulta y me salio un error

SELECT TOP 3 Fecha FROM compras ORDER BY Fecha DESC

muchas gracias

lucasarts_18 12-10-2005 00:45:50

Hola:

Y cual es el error que te da y que motor de base de datos usas ?

:rolleyes:

ContraVeneno 12-10-2005 00:51:46

usa firebird y para firebird TOP no existe... si mi memoria no me falla
para firebird se usa FIRST(x) en lugar de TOP x como en SQL Server...

pero como nunca he usado firebird, no puedo comprobar esto.

vtdeleon 12-10-2005 01:20:10

Saludos
Cita:

Empezado por ContraVeneno
...si mi memoria no me falla
para firebird se usa FIRST(x) ...

En esto tienes razón.

[off-topic]ContraVeneno, haber cambiado de Avatare me ha confundido varias veces, es como si no te conociera. Me acostumbre al anterior, te tenida identificado con ese.
Hubo una vez qeu un forista plagió el avatare de roman y creyendo que era él me confundio bastante por el post que había hecho[/off-topic]

ContraVeneno 12-10-2005 17:56:03

Cita:

Empezado por vtdeleon
haber cambiado de Avatare me ha confundido

:D :D Trataré de no cambiar mi avatar otra vez amigo Van Troi, pero sigue siendo el mismo, Un soldado elfo. Solo que este ya no es un dibujo, si no una foto real...

lucasarts_18 12-10-2005 19:08:15

Cita:

Empezado por ContraVeneno
pero sigue siendo el mismo, Un soldado elfo. Solo que este ya no es un dibujo, si no una foto real...

Acaso no es legolas!!! :D

ContraVeneno 12-10-2005 19:28:34

no, no es Legolas, mucha gente (en otros foros sobre temas elficos y de el señor de los anillos) usa las clásicas imágenes de los personajes, (Legolas, Aragorn, Gandalf, Frodo, etc, etc) así que yo preferí poner una imagen que no fuera tan común y de alguien que nadie conociera, así puedo decir que mi avatar se trata de mi personaje que se llama Eärandir (que es mi nombre élfico :D ).

La imagen es de un soldado elfo (Eärandir, o sea yo)que defendió las murallas del abismo de Helm.

El avatar anterior (que menciona VTdeLeón) era una imagen de Glorfindel, por eso decidí cambiarla.


La franja horaria es GMT +2. Ahora son las 03:50:27.

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