Insert Into MvGeral
 (CodEmpresa, TipoAgente, CodigoAgente, Documento, CodProd, CodGrade, Dt_Movimento, TipoMov,
  Quantidade, PrecoCusto, Turno)
Select VendPdv.CodEmpresa,
       'C',
       Encerra.codcliente,
       Substr(Encerra.Pdv,3,4) || Encerra.Cupom,
       VendPdv.Codprod,
       VendPdv.codGrade,
       Encerra.dt_movimento,
       '56',
       Sum(VendPdv.quantidade),
       0,
       ' '
from Encerra
Inner Join VendPdv On
  VendPdv.CodEmpresa = Encerra.Codempresa And
  VendPdv.Pdv = Encerra.Pdv And
  VendPdv.Cupom = encerra.Cupom
Where encerra.dt_movimento between :DataInicial and :DataFinal And
 not Exists
(Select * From MvGeral Mv2
 where Mv2.CodEmpresa = VendPdv.CodEmpresa And
       Mv2.TipoAgente = 'C' And
       Mv2.CodigoAgente = encerra.Codcliente And
       Mv2.Documento = Substr(encerra.pdv,3,4) || encerra.cupom And
       Mv2.CodProd = VendPdv.CodProd and
       Mv2.CodGrade = VendPdv.CodGrade And
       Mv2.Dt_Movimento = Encerra.Dt_Movimento and
       Mv2.TipoMov = '56')
group By VendPdv.CodEmpresa, Encerra.Codcliente,
         Encerra.Pdv, Encerra.Cupom, VendPdv.CodProd,
         VendPdv.Codgrade, Encerra.Dt_Movimento;