Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

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: 20
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.058
Poder: 30
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: 20
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: 20
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: 25
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: 20
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.557
Poder: 25
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: 20
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: 22
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



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 06:15:39.


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