[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)