23/11/2010, 05:02
|
| | 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 ? |