Amigos ... estoy haciendo un procedimiento en Firebird que he logrado hacer a medias. Tengo una relacion maestro-detalle entre una tabla productos y otra de compuestos. Los compuestos también contienen datos de la misma tabla productos:
PRODUCTOS
IDPRODUCTO
PRECIO_COMPRA
COMPUESTOS
IDCOMPUESTO
IDPRODUCTO
ID
CANTIDAD
NOMBRE
PRECIO_COMPRA
TOTAL_PRECIO_COMPRA
La idea es que si se cambia un PRECIO_COMPRA de la tabla productos y ese producto se encuentra en la tabla compuestos (o sea es una composicion de otro producto), entonces que se cambie ese PRECIO_COMPRA de la tabla compuestos para que se actualize el TOTAL_PRECIO_COMPRA. Eso ya lo tengo:
Código SQL
[-]
CREATE OR ALTER PROCEDURE ACTUALIZAR (
COMPRA double precision)
as
begin
UPDATE COMPUESTOS
SET PRECIO_COMPRA = :COMPRA
WHERE ID = :IDPRODUCTO;
SUSPEND;
pero lo que necesito es que .... si existe un producto cuyo compuesto sea aquel al cual se le ha modificado su PRECIO_COMPRA, entonces el PRECIO_COMPRA de ese producto es igual a SUM(TOTAL_PRECIO_COMPRA).Lo que quiero es mantener actualizado siempre PRECIO_COMPRA de la tabla productos el cual depende de la suma de los totales de los compuestos.