Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.108
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que el 'last' es el último de select que se haya hecho, pero para saber realmente el orden de grabación de los registros habría que poner un control, que puede ser perfectamente un campo que saque el número de un generador, por ejemplo, y cada vez que se haga un post (ya sea insertando o modificando) le asigne el número siguiente que toque.
Así puede hacerse el select por ese campo.

Código SQL [-]
select first 8 tucampo
from tutabla
order by campodelgenerador desc
Responder Con Cita
  #2  
Antiguo 03-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En Firebird existe el last, pero no para estos fines.
Lo que se puede usar, sabiendo como, es MAX().
Tenia un problema similar en una consulta en Access que contenia algunos Last(), los cambie por Max() y me da el dato correcto, exacto.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 03-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
En este reporte en especial es donde tube el problema.
Se que es una sentencia sql sencilla pero cuando se cambia de access a Firebird se complica por desconocimiento, en mi caso es asi.

El asunto esta en el orden del IdTransac, que es el que define todo.

En Access:

Código Delphi [-]
QRBancoGen:=TQRBancoGen.Create(self);
QRBancoGen.ADOQuery1.SQL.Add(' SELECT DISTINCTROW BancoNac.CodTransac,  Last(BancoNac.IdTramsac) AS ÚltimoDeIdTramsac, '+
                            ' BancoNac.TipoTransac, BancoNac.FechaTransac, BancoNac.Descripcion, '+
                            ' Sum(BancoNac.Retiros) AS [Suma De Retiros], Sum(BancoNac.Depositos) AS [Suma De Depositos], '+
                            ' Last(BancoNac.SaldoTotal) AS SaldoTotal FROM BancoNac');
QRBancoGen.ADOQuery1.SQL.Add(' WHERE BancoNac.FechaTransac >= #'+DateToStr(DTP1.Date)+ '# AND  BancoNac.FechaTransac <= # '+DateToStr(DTP2.Date)+'#');
QRBancoGen.ADOQuery1.SQL.Add(' GROUP BY BancoNac.CodTransac, BancoNac.TipoTransac, BancoNac.FechaTransac, BancoNac.Descripcion ');
QRBancoGen.ADOQuery1.SQL.Add(' ORDER BY Last(BancoNac.IdTramsac), BancoNac.FechaTransac ASC');
QRBancoGen.ADOQuery1.Open;

En Firebird:
Dando el mismo resultado:

Código Delphi [-]
QRBancoGen:=TQRBancoGen.Create(self);
QRBancoGen.ADOQuery1.SQL.Add(' SELECT DISTINCT BancoNac.CodTransac,  Max(BancoNac.IdTramsac) AS UltimoDeIdTramsac, BancoNac.TipoTransac, '+
                              ' BancoNac.FechaTransac, BancoNac.Descripcion, '+
                              ' Sum(BancoNac.Retiros) AS SumaDeRetiros, Sum(BancoNac.Depositos) AS SumaDeDepositos, '+
                              '  Max(BancoNac.SaldoTotal) AS SaldoTotal FROM BancoNac ');
QRBancoGen.ADOQuery1.SQL.Add(' WHERE BancoNac.FechaTransac >= :fech1 AND  BancoNac.FechaTransac <= :fech2');
QRBancoGen.ADOQuery1.SQL.Add(' GROUP BY BancoNac.CodTransac, BancoNac.TipoTransac, BancoNac.FechaTransac, BancoNac.Descripcion ');
QRBancoGen.ADOQuery1.SQL.Add(' ORDER BY Max(BancoNac.IdTramsac), BancoNac.FechaTransac ASC');
QRBancoGen.ADOQuery1.Params[0].Value:= DateToStr(DTP1.Date);
QRBancoGen.ADOQuery1.Params[1].Value:= DateToStr(DTP2.Date);
QRBancoGen.ADOQuery1.Open;

Tal vez ayude a enterder algo mas, no se.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 21-02-2015
slnit slnit is offline
Registrado
NULL
 
Registrado: feb 2015
Posts: 1
Poder: 0
slnit Va por buen camino
SELECT TOP 8 FROM TUTABLA ORER BY FECHA DESC. Saludos
Responder Con Cita
  #5  
Antiguo 21-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.108
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por slnit Ver Mensaje
Saludos
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración


Recuerda poner los tags al código fuente, ejemplo:



Gracias
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
Seleccionar un numero determinado de registros de una tabla NPIdea Firebird e Interbase 8 26-11-2008 19:50:46
Consultar los ultimos registros de una tabla FGarcia Firebird e Interbase 18 09-10-2008 18:07:45
seleccionar los ultimos registros de una tabla JODELSA SQL 1 04-10-2006 15:27:41
Seleccionar registros en una tabla, envio, e insercion en otra tabla!! EfrainSanmiguel Conexión con bases de datos 3 21-10-2004 01:12:43
Seleccionar varios registros de una tabla por un campo vhirginia Conexión con bases de datos 19 27-04-2004 12:00:57


La franja horaria es GMT +2. Ahora son las 11:55:11.


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