-- Cambiar el 'XX' por el codigo de cuenta 
declare 
  vdebito    banmae.debmes%type;
  vcredito   banmae.debmes%type;
  vsaldoini  banmae.debmes%type;
  cursor ban is select cuenta from banmae;
begin
for x in ban loop
   select sum(decode(c.contable,'D',a.monto,0)),
       sum(decode(c.contable,'C',a.monto,0)) into vdebito,vcredito
   from banmov a,bantip b,bandoc c
   where a.cod_cia='001'
   and   b.cod_cia='001'
   and   c.cod_cia='001'
   and   a.tipo_mov=b.tipo_mov
   and   b.fuente=c.fuente
   and   a.cuenta=x.cuenta
   and   a.estado = 'A';

   select sum(decode(c.contable,'D',a.monto,-a.monto)) into vsaldoini
   from banmov a,bantip b,bandoc c
   where a.cod_cia='001'
   and   b.cod_cia='001'
   and   c.cod_cia='001'
   and   a.tipo_mov=b.tipo_mov
   and   b.fuente=c.fuente
   and   a.cuenta=x.cuenta
   and   a.estado ='K';

   update banmae
   set debmes=vdebito,
       cremes=vcredito,
       saldo_ini=vsaldoini
   where cuenta=x.cuenta;
end loop;
commit;
end;
/