Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-10-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
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!!
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #2  
Antiguo 08-10-2008
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.070
Poder: 32
jhonny Va camino a la famajhonny Va camino a la fama
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;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 08-10-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Y si le quitas el desc?

// Saludos
Responder Con Cita
  #4  
Antiguo 08-10-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
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.
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #5  
Antiguo 08-10-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
Roman pues no, me regresa igualmente los primeros 20.
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #6  
Antiguo 08-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
¿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,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 08-10-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
Pues no, Delphius. Te regresa los primeros 20 ordenados en forma descendente.
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #8  
Antiguo 08-10-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.572
Poder: 27
egostar Va camino a la fama
Cita:
Empezado por FGarcia Ver Mensaje
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 ) 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); // 
      open;
    end;
end;

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

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 08-10-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
¡¡¡SENSEI!!!



otro titulo que añadirle!! Policia, reportero, publicista
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #10  
Antiguo 08-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 24
Caro Va por buen camino
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
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿como Puedo Cancelar La Inserción De Los Últimos Registros "insertados" OscarBravo Tablas planas 1 23-07-2007 19:26:35
Consultar tabla de Base de Datos externa ElGatitoTapatio Firebird e Interbase 4 11-01-2007 00:39:48
Mostrar los últimos 100 registros dade SQL 4 19-10-2006 04:22:45
seleccionar los ultimos registros de una tabla JODELSA SQL 1 04-10-2006 15:27:41
Problema al modificar y consultar tabla suppergus Tablas planas 2 17-08-2005 00:55:45


La franja horaria es GMT +2. Ahora son las 08:10:59.


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
Copyright 1996-2007 Club Delphi