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

Responder a