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