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/>
>
>
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 |