Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Consultar los ultimos registros de una tabla (https://www.clubdelphi.com/foros/showthread.php?t=60649)

FGarcia 08-10-2008 21:16:56

Consultar los ultimos registros de una tabla
 
Hola! Estoy trabajando con FB 2.0, D7 y los IBX.
Mi pregunta es ¿Como recuperar los ultimos 20 registros de una tabla? De hecho en un IBQuery tengo esto:

Código SQL [-]
procedure TdmDatos.ConsultaUltimos20;
begin
  with qyCapturas do
    begin
      close;
      sql.Clear ;
      sql.Text := 'select * from Datos order by horafecha desc rows 20';
      open;
    end;
end;

sin embargo esto me regresa siempre los ultimos 20 con la fecha mayor (mas actual) a menor -lo cual es logico- ¿como hacer para que me de de la fecha mas antigua a la mas actual?

¡¡Una vez mas gracias por la ayuda prestada!!

jhonny 08-10-2008 21:19:51

A ver, no se si te entendí bien, pero ¿No bastaría con ordenar los registros ascendentemente por dicho campo que contiene la fecha?

Código Delphi [-]
 
procedure TdmDatos.ConsultaUltimos20;
begin
  with qyCapturas do
    begin
      close;
      sql.Clear ;
      sql.Text := 'select * from Datos order by horafecha asc rows 20';
      open;
    end;
end;

roman 08-10-2008 21:20:39

¿Y si le quitas el desc?

// Saludos

FGarcia 08-10-2008 21:51:16

Jhonny: si le pongo asc me los ordena como los primeros 20 en orden ascendente de acuerdo a la hora - fecha y yo necesito los ultimos 20.

Roman: no lo he probado, deja lo hago y te comento.

FGarcia 08-10-2008 22:01:20

Roman pues no, me regresa igualmente los primeros 20.:(

Delphius 08-10-2008 22:08:32

¿Que no es que para obtener los últimos n registros hay que emplear FIRST e invertir el orden en la cláusula ORDER BY?

Código SQL [-]
select FIRST 20 tus_campos
from tu_tabla
order by tu_campo DESC

Saludos,

FGarcia 08-10-2008 22:14:05

Pues no, Delphius. Te regresa los primeros 20 ordenados en forma descendente.:)

egostar 08-10-2008 22:15:47

Cita:

Empezado por FGarcia (Mensaje 319020)
Roman pues no, me regresa igualmente los primeros 20.:(

Si usas desc, te va a mostrar los ultimos 20 registros, me imagino que lo que quieres es que se vean los ultimos 20 ordenados de la fecha mas antigua a la fecha mas actual, en ese caso, (a manera de chapuza :D) yo sugiero que primero obtengas el numero de registros y despues hagas esto:

Código Delphi [-]
procedure TdmDatos.ConsultaUltimos20;
begin
  with qyCapturas do
    begin
      close;
      sql.Clear ;
      sql.Text := 'select * from Datos';
      open;
      Registros := RecordCount; 
      close;
      sql.Clear ;
      sql.Text := 'select * from Datos order by horafecha rows '+inttostr(Registros-20)+' to '+inttostr(Registros); // :D:D:D
      open;
    end;
end;

A menos claro que los que saben nos digan si hay alguna funcion que lo haga. :)

Salud OS

FGarcia 08-10-2008 22:24:33

¡¡¡SENSEI!!!



otro titulo que añadirle!! Policia, reportero, publicista

Caro 08-10-2008 22:37:35

Hola FGarcia, también podrías utilizar una subconsulta

Código SQL [-]
 Select *
 From (Select * From Datos Order by horafecha desc rows 20)
 Order By horafecha

O, como ya tienes la cantidad de registros, puedes utilizar también skip

Código SQL [-]
 Cant := Registros-20;
 Select skip Cant *
 From Datos Order by horafecha

Saluditos

FGarcia 08-10-2008 22:49:21

Gracias Caro, probe la subconsulta y tambien funciona muy bien!

¡¡De todos modos el titulo se lo gano!!:p

Caro 08-10-2008 22:58:19

Cita:

Empezado por FGarcia (Mensaje 319037)
¡¡De todos modos el titulo se lo gano!!:p

Ok ;).

Saluditos

egostar 08-10-2008 23:01:46

Cita:

Empezado por FGarcia (Mensaje 319037)
Gracias Caro, probe la subconsulta y tambien funciona muy bien!

Hombre ya lo decia yo....

Cita:

Empezado por YO MERO, CAPOTERO
A menos claro que los que saben nos digan si hay alguna funcion que lo haga.

[Caro] si que es la SENSEI :)

Salud ITOS

FGarcia 08-10-2008 23:18:20

Cita:

Empezado por egostar (Mensaje 319048)
Hombre ya lo decia yo....



[Caro] si que es la SENSEI :)

Salud ITOS


Yo mas bien diria Miko

JoseFco 08-10-2008 23:36:02

Cita:

Empezado por FGarcia (Mensaje 319031)
¡¡¡SENSEI!!!






otro titulo que añadirle!! Policia, reportero, publicista

¿Otro? jajajajaja Faltan unos cuantos y el principal por el que le dieron una maestria.:D:D:D En la Universidad de Putilandia.:D

egostar 08-10-2008 23:55:58

Cita:

Empezado por JoseFco (Mensaje 319066)
¿Otro? jajajajaja Faltan unos cuantos y el principal por el que le dieron una maestria.:D:D:D En la Universidad de Putilandia.:D

Como se ve que te conozco wey, le comenté a [FGarcia] que ibas a postear con una vacilada, cabron. :mad::D:D:D

Salud OS

JoseFco 08-10-2008 23:58:36

Cita:

Empezado por egostar (Mensaje 319068)
Como se ve que te conozco wey, le comenté a [FGarcia] que ibas a postear con una vacilada, cabron. :mad::D:D:D

Salud OS

No pos estabas de puntita y como que no me pude contener.:D:D:D

FGarcia 09-10-2008 16:58:51

pero al final nos quedamos con la duda

¿cual es el nombre y grado de ese titulo?

Se debio haber esforzado mucho para lograrlo, ¡merece que se le llame por el!

Lepe 09-10-2008 18:07:45

eh!, eh!, moderacion u os saco tarjeta roja a ambos ehhh, esa boquita :p


La franja horaria es GMT +2. Ahora son las 01:50:56.

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