DECLARE @V_CDFILIAL    VARCHAR(04);
DECLARE @V_CDMODPGTO   VARCHAR(02);
DECLARE @V_NRPEDIDO    VARCHAR(10);
DECLARE @V_CDPRECOBASE VARCHAR(02);
BEGIN
   DECLARE C_PEDIDO CURSOR FOR
   SELECT CDFILIAL, CDMODPGTO, NRPEDIDO
   FROM PEDIDO
   WHERE CDPRECOBASE IS NULL;

   OPEN C_PEDIDO;

   FETCH NEXT FROM C_PEDIDO INTO @V_CDFILIAL, @V_CDMODPGTO, @V_NRPEDIDO;

   WHILE (@@FETCH_STATUS = 0) BEGIN
      SELECT @V_CDPRECOBASE = MAX(CDPRECOBASE)
      FROM PRECOUTI
      WHERE CDFILIAL  = @V_CDFILIAL AND
            CDMODPGTO = @V_CDMODPGTO

      UPDATE PEDIDO
      SET CDPRECOBASE = @V_CDPRECOBASE
      WHERE CDFILIAL = @V_CDFILIAL AND
            NRPEDIDO = @V_NRPEDIDO

      FETCH NEXT FROM C_PEDIDO INTO @V_CDFILIAL, @V_CDMODPGTO, @V_NRPEDIDO;
   END;

   CLOSE C_PEDIDO;
   DEALLOCATE C_PEDIDO;

END;

GO