Re: Alias en los campos - en funciones plpgsql

From: ruben avila galindo <ruben2218(at)gmail(dot)com>
To: Lazaro Ruben Garcia Martinez <lgarciam(at)uci(dot)cu>
Cc: Grover Navia <grover8navia(at)yahoo(dot)es>, PostGreSql- Ayuda Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Alias en los campos - en funciones plpgsql
Date: 2012-05-03 17:09:57
Message-ID: CAKavrFrBiTjrmmdaTKn-OX2QrKZvBwomtxx3x-5t1J16ULAfZw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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
<lgarciam(at)uci(dot)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/>
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Rodrigo Ruiz 2012-05-03 21:21:08 Re: Error migrando de 8.4 a 9.1
Previous Message Lazaro Ruben Garcia Martinez 2012-05-03 15:46:48 Re: Alias en los campos - en funciones plpgsql