Hola.
Pensé en la misma opción que te dá
Casimiro, pero le agregaría:
Código SQL
[-]
UPDATE MOVIMIENTOS MV
SET TIPO = COALESCE((SELECT TIPO FROM CLIENTES CL WHERE MV.CLIENTE = CL.CODIGO AND CL.TIPO = :PTIPO),
MV.TIPO);
para evitar que asigne NULL cuando la consulta arroje resultados no coincidentes. Lo que no sé, es si será mas eficiente que la primera...
Saludos