yo te recomendaria usar TYPEs asi te evitarias problemas con el nombre que
quieres dar asi puede solo eliminar o cambiar el nombre en el tipe y no se
afecta en tu Store.

Atte

Ruben Avila G


El 3 de mayo de 2012 10:46, Lazaro Ruben Garcia Martinez
<lgarc...@uci.cu>escribió:

> Por alguna casualidad la columna alm_kardex de la tabla almacenes, es
> algún tipo de dato compuesto??. De ser así verifica que el tipo de dato
> compuesto contenga esas columnas. En caso contrario, declara un tipo de
> dato compuesto para que almacenes la data, o crea variables para que las
> utilices en el INTO, de la siguiente forma:
>
> *DECLARE*
>  c_entrada numeric;
>  c_salida numeric;
>  i_ingreso numeric;
>  i_salida numeric;
> BEGIN
>     SELECT
> SUM(cant_entrada),
>     SUM(cant_salida),
> SUM(importe_entrada),
>         SUM(importe_salida)
>    INTO
>          c_entrada,
>   c_salida,
>   i_ingreso,
>   i_salida
>     FROM almacenes.alm_kardex
>     WHERE gestion = New.gestion AND mes = New.mes AND cod_prod =
> New.cod_prod
>     GROUP BY gestion, mes, cod_prod;
>
>  IF FOUND THEN
>         New.sum_cant_entrada = c_ingreso;
>         New.sum_cant_salida = c_salida;
>         New.sum_importe_entrada =i_ingreso;
>         New.sum_importe_salida = i_salida;
>     END IF;
>     RETURN NEW;
> END;
>
>
> Saludos
>
>
> ------------------------------
>
> Hola compañeros
>
> Estoy trabajando con Postgresql 8.4 bajo linux ( CentOS 6.2 ); me sale un
> mensaje de error de esta funcion
>
> DECLARE
> kardex_item_tabla almacenes.alm_kardex%ROWTYPE;
> BEGIN
>     SELECT SUM(cant_entrada) AS c_ingreso, SUM(cant_salida) AS c_salida,
> SUM(importe_entrada) AS i_ingreso, SUM(importe_salida) AS i_salida INTO
> kardex_item_tabla
>     FROM almacenes.alm_kardex
>     WHERE gestion = New.gestion AND mes = New.mes AND cod_prod =
> New.cod_prod
>     GROUP BY gestion, mes, cod_prod;
>     IF FOUND THEN
>         New.sum_cant_entrada = kardex_item_tabla.c_ingreso;
>         New.sum_cant_salida = kardex_item_tabla.c_salida;
>         New.sum_importe_entrada = kardex_item_tabla.i_ingreso;
>         New.sum_importe_salida = kardex_item_tabla.i_salida;
>     END IF;
>     RETURN NEW;
> END;
>
>
> El error dice:
> ERROR:  la fila «kardex_item_tabla» no tiene un campo llamado "c_ingreso"
> CONTEXT:  compilación de la función PL/pgSQL "suma_informe_mensual" cerca
> de la línea 9
>
> Cual es el problema y porq no me acepta usar este tipo de alias o como se
> deria urar los alias en estos casos ...?,
> de ante mano les doy las gracias por sus comentarios y por su tiempo
>
> Saludos
> Grover Navia
>
>
>
>
>
>
> <http://www.uci.cu/>
>
>
>
>   <http://www.uci.cu/>
>
>

Responder a