José Fermín Francisco Ferreras escribió:
ing. José Fermín Francisco Ferreras
San Francisco de Macorís, Rep. Dom.
------------------------------------------------------------------------
Date: Thu, 4 Mar 2010 00:03:38 +0000
From: grover8na...@yahoo.es
Subject: [pgsql-es-ayuda] Ayuda con funcion
To: pgsql-es-ayuda@postgresql.org
Hola Listeros
Tengo un problema con uan funcion que realice, me sale el siguiente
error al ejecutar:
Error while executing the query;
ERROR: row "kardex_item_tabla" has no field "c_ingreso"
Por favor si alguien puede ayudarme con esto, es probable que no este
manejando bien las consultas. Esta es la 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;
De antemano les doy las gracias por su ayuda.
Saludos
Grover Navia
*Estas Seguro q tienes el campo llamado c_ingreso en tu tabla??*
------------------------------------------------------------------------
Por lo que veo c_ingreso es un casting a SUM(cant_entrada), no
constituye un atributo de esa tabla, y te esta dando ese error porque lo
estas llamando como tal
Prueba esto:
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 = 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
--
--------------------------------------------------------
-- Ing. Marcos Luís Ortíz Valmaseda --
-- FreeBSD Fan/User --
-- http://www.freebsd.org/es --
-- Linux User # 418229 --
-- Database Architect/Administrator --
-- PostgreSQL RDBMS --
-- http://www.postgresql.org --
-- http://planetpostgresql.org --
-- http://www.postgresql-es.org --
--------------------------------------------------------
-- Data WareHouse -- Business Intelligence Apprentice --
-- http://www.tdwi.org --
--------------------------------------------------------
-- Ruby on Rails Fan/Developer --
-- http://rubyonrails.org --
--------------------------------------------------------
Comunidad Técnica Cubana de PostgreSQL
http://postgresql.uci.cu
Centro de Gestión de Datos (DATEC)
Contacto:
Correo: centa...@uci.cu
Telf: +53 07-837-3737
+53 07-837-3714
Universidad de las Ciencias Informáticas
http://www.uci.cu
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo