Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/11/2010, 05:02
selene_2103
 
Fecha de Ingreso: noviembre-2010
Mensajes: 2
Antigüedad: 14 años
Puntos: 0
Para actualizar un numero determinado de filas, como pongo la instruccion ?

Tengo que hacer una funcion que me actualice solo un 25% de los registros de una tabla.

Yo lo he hecho así, pero el resultado es que me los actualiza todos.

CREATE OR REPLACE FUNCTION precioventa2() RETURNS varchar(40) AS'
DECLARE
productoscon40 integer;
porcentaje numeric(4,2);
redondeo integer;
i integer = 0;
mensaje varchar(40);
BEGIN
SELECT count(num_serie) INTO productoscon40 from producto inner join unidad_venta on producto.codigo = unidad_venta.codigo_producto where producto.codigo in (select codigo_producto from unidad_venta where precio_actual = 40);

porcentaje = productoscon40 * 0.25;
redondeo = round(porcentaje);
mensaje = ''Procedimiento realizado con éxito'';

WHILE i <= redondeo LOOP
UPDATE unidad_venta SET precio_actual = 10 where precio_actual = 40;
i = i + 1;
END LOOP;
RETURN mensaje;
END;
'LANGUAGE 'plpgsql';


Alguien ve el error ?