select  a.cod_articulo,a.cod_bodega,a.tip_movto,a.num_docto,a.sub_total/a.can_articulo costo,a.can_articulo cantidad
from  inv_detmovimiento a,inv_encabmovimiento b
where a.cod_cia = b.cod_cia
and   a.sucursal = b.sucursal
and   a.tip_movto=b.tip_movto
and   a.cod_movto=b.cod_movto
and   a.num_docto=b.num_docto
and   b.ano_fiscal=2004
and   b.per_proceso=7
and   b.estado='D'
and   a.cod_bodega in ('001','004')
and   a.cod_movto in ('25','26')
order by a.cod_articulo,a.num_docto,a.cod_bodega;





--- Esto no debe tocarlo --
declare cursor xx is select * from inv_artic_Bodega
where cod_cia='001'
and   cod_bodega='004';
begin
  for a in xx loop
     update inv_detmovimiento
     set sub_total=a.cos_promedio*can_articulo
     where cod_cia='001'
     and   cod_bodega='001'
     and   cod_articulo=a.cod_articulo
     and   (cod_cia,sucursal,tip_movto,cod_movto,num_docto) in 
     (select cod_cia,sucursal,tip_movto,cod_movto,num_docto
      from inv_encabmovimiento
      where cod_cia='001'
      and   sucursal='001'
      and   ano_fiscal=2004
      and   per_proceso=7
      and   estado='D');
  end loop;
end;


declare cursor xx is select cod_articulo,monto/cantidad costo from inv_acum_periodo
where cod_cia='001'
and   cod_bodega='001'
and   clase_movto='EI'
and   ano_fiscal=2004
and   per_proceso=7
and   cantidad<>0
and   monto>0;
begin
   for a in xx loop
     update inv_detmovimiento
     set sub_total=a.costo*can_articulo
     where cod_cia='001'
     and   cod_bodega='001'
     and   cod_articulo=a.cod_articulo
     and   (cod_cia,sucursal,tip_movto,cod_movto,num_docto) in 
     (select cod_cia,sucursal,tip_movto,cod_movto,num_docto
      from inv_encabmovimiento
      where cod_cia='001'
      and   sucursal='001'
      and   ano_fiscal=2004
      and   per_proceso=7
      and   estado='D');
   end loop;
end;
/
end;