From: | Lazaro Ruben Garcia Martinez <lgarciam(at)uci(dot)cu> |
---|---|
To: | Grover Navia <grover8navia(at)yahoo(dot)es> |
Cc: | PostGreSql- Ayuda Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Alias en los campos - en funciones plpgsql |
Date: | 2012-05-03 15:46:48 |
Message-ID: | d3700f62-df53-4c9e-8fb5-863a9c2af356@ucimail3.uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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
----- Mensaje original -----
> 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
10mo. ANIVERSARIO DE LA CREACION DE LA UNIVERSIDAD DE LAS CIENCIAS INFORMATICAS...
CONECTADOS AL FUTURO, CONECTADOS A LA REVOLUCION
http://www.uci.cu
http://www.facebook.com/universidad.uci
http://www.flickr.com/photos/universidad_uci
From | Date | Subject | |
---|---|---|---|
Next Message | ruben avila galindo | 2012-05-03 17:09:57 | Re: Alias en los campos - en funciones plpgsql |
Previous Message | Alvaro Herrera | 2012-05-03 15:36:20 | Re: Error migrando de 8.4 a 9.1 |