Como yo lo veo a primeras, no se esta actualizando la variable codi en codi=fila_item.codiprod;
creo que debería ser codi:=fila_item.codiprod;

Saludos


El 21/07/14 13:29, Felipe Araoz Ramos escribió:
Amigos

Estoy creando una funcion, para rrecorrer secuencialmente una tabla, de
principio a fin, actualizando el campo de stock en cada registro,
reinicializando la variable a cero  cuando encuentra un nuevo producto y
continuar hasta terminar con el ultimo registro de la tabla.  No me muestra
error, pero tampoco me esta actualizando el campo de la tabla.  que podria
estar mal?.   Espero vuestra ayuda.

CREATE Or REPLACE FUNCTION SALDOSTOCK()
RETURNS INTEGER
AS $$
DECLARE
codi character(12);
stk numeric (20,5);
fila_item infkrdx%ROWTYPE;
BEGIN
stk := 0;
for fila_item in SELECT * FROM INFKRDX LOOP
    codi=fila_item.codiprod;
    /*Acumulo el stock en variable stk */
     stk := case when fila_item.cod_trans='I' then stk+fila_item.cantidad
else stk-fila_item.cantidad end;
     UPDATE INFKRDX SET ST_FISICO=stk where n_operac=fila_item.n_operac;
    if  fila_item.codiprod<>INFKRDX.codi then   stk := 0;
    end if;
     end loop;
end;
$$
language 'plpgsql'

Gracias

*Felipe Araoz Ramos*
RPM #941990605 / 941990605
RPC 992760385
  NXT  822*9500 / 998229500



-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a