Ver Mensaje Individual
  #15  
Antiguo 03-07-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 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