ayuda con triggers

From: leonardo(dot)amezquita(at)ubiquando(dot)com(dot)co
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: ayuda con triggers
Date: 2005-02-07 21:00:48
Message-ID: 1107810048.4207d700e754b@207.44.134.65
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola lista estoy tratando de hacer un trigger que me actualice una tabla o
inserte u;n dato si no existe el registro el problema que se me esta
presentando es que no puedo ejecutar una suma que estoy haciendo no se que es
lo que pasa pero los dato de tipo numeric me los esta poniendo como null espero
puedan ayudarme les envio el codigo de la funcion gracias

DECLARE
valtotven NUMERIC(16,2)=0;
valtotpes NUMERIC(16,2)=0;
valtotdes NUMERIC(16,2)=0;
valtotiva NUMERIC(16,2)=0;
valtotcos NUMERIC(16,2)=0;
valtotcan NUMERIC(16,2)=0;
valtotren NUMERIC(16,2)=0;
registro agreg_ventas_mes%ROWTYPE;
BEGIN
SELECT INTO registro * FROM agreg_ventas_mes WHERE ven_cen_codigo =
NEW.ven_cen_codigo AND ven_tie_codigo = NEW.ven_tie_codigo AND ven_mae_codigo =
NEW.ven_mae_codigo AND ven_lin_codigo = NEW.ven_lin_codigo AND
ven_cat_codigo=NEW.ven_cat_codigo;
IF NOT FOUND THEN
INSERT INTO agreg_ventas_mes VALUES (NEW.ven_cen_codigo,
NEW.ven_nom_centro, NEW.ven_tie_codigo, NEW.ven_mae_codigo,
NEW.ven_nom_producto, NEW.ven_lin_codigo, NEW.ven_nom_linea,
NEW.ven_cat_codigo, NEW.ven_nom_categoria, NEW.venm_val_venta,
NEW.venm_vta_pesos, NEW.venm_val_descto, NEW.venm_val_iva, NEW.venm_val_costo,
NEW.venm_val_cantidad, NEW.venm_rentabilidad);
END IF;
IF FOUND THEN
valtotven := registro.venm_val_venta ;
valtotpes := registro.venm_vta_pesos ;
valtotdes := registro.venm_val_descto ;
valtotiva := registro.venm_val_iva + NEW.venm_val_iva ;
valtotcos := registro.venm_val_costo + NEW.venm_val_costo ;
valtotcan := registro.venm_val_cantidad + NEW.venm_val_cantidad
;
valtotren := registro.venm_rentabilidad + NEW.venm_rentabilidad
;
UPDATE agreg_ventas_mes SET venm_val_venta = valtotven,
venm_vta_pesos = valtotpes , venm_val_descto = valtotdes, venm_val_iva =
valtotiva, venm_val_costo = valtotcos, venm_val_cantidad = valtotcan,
venm_rentabilidad = valtotren WHERE ven_cen_codigo = NEW.ven_cen_codigo AND
ven_tie_codigo = NEW.ven_tie_codigo AND ven_mae_codigo = NEW.ven_mae_codigo AND
ven_lin_codigo = NEW.ven_lin_codigo AND ven_cat_codigo=NEW.ven_cat_codigo;
END IF;
RETURN NEW;
END;

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Daniel Andrade 2005-02-07 21:28:54 Pequeño problema
Previous Message Carlos Chavez Herrera 2005-02-07 17:12:06 FW: ayuda con tablas relacionadas