[Pgsql-ayuda] No puedo postear mensajes

Alvaro Herrera alvherre@dcc.uchile.cl
Tue, 15 Jul 2003 23:40:05 -0400


On Tue, Jul 15, 2003 at 03:40:14PM -0600, Josué Maldonado wrote:
> Alvaro Herrera wrote:
> 
> Agradecere mucho un ejemplo mas completo si no es mucha la molestia.

create table articulos (
	articulo_id serial primary key,
	vendidos int not null check (vendidos >= 0) default 0
);

create table facturas (
	factura_id serial primary key,
);

create table lineas_factura (
	factura_id int not null references facturas,
	articulo_id int not null references articulos,
	cantidad int not null check (cantidad > 0) default 1
);

create function agregar_productos_lineas_factura () returns trigger as '
begin
update articulos set vendidos = vendidos + new.cantidad;
return new;
end;' language plpgsql immutable with (isstrict);

create trigger agregar_productos_factura before insert on lineas_factura
for each row execute procedure agregar_productos_lineas_factura();

> Para dar una mejor idea de mi escenario, el proceso de facturarcion 
> genera un registro por factura y varios por detalle en la tabla de 
> encabezado de factura y detalle de factura respectivamente, por cada 
> factura que se graba necesito actualizar la estadistica del cliente, el 
> proveedor y el vendedor. Ademas por cada linea de detalle que se grabe 
> se debe generar estadistica por articulo.
> 
> La estadistica la genero 1 registro por entidad por mes para ello usare 
> la funcion to_char(fecha,'YYYYMM')

Hmm... no es dificil hacer esto, solo necesitas una tabla adicional por
entidad (tambien podria ser una tabla para todas las entidades, pero me
suena poco recomendable)

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Et put se mouve" (Galileo Galilei)