Hola, si estas trabajando con sql server seria mas facil hacer un trigger.
Dentro del trigger controlas que el stock no se vuelva negativo y en este 
caso de que ocurra cancelas la transaccion y lanzas una excepcion.

saludos.

-----Original Message-----
From: Rafael Copquin <rcopq...@fibertel.com.ar>
To: "GUFA List Member"  <GUFA@mug.org.ar>
Date: Tue, 22 May 2012 14:17:42 -0300
Subject: [GUFA] OT - Una de SQL-Server

> Yo haría un select asi
> 
> select ventas.idproducto as pkventas,compras.idproducto as 
> pkcompras,ventas.cantidad,compras.cantidad,
> ventas.cantidad - compras.cantidad as diferencia,
> comprobacion = case when ventas.cantidad - compras.cantidad < 0 then 
> 'error' else 'ok' end
> from ventas join compras
> on ventas.idproducto=compras.idproducto
> group by 
> ventas.idproducto,compras.idproducto,ventas.cantidad,compras.cantidad
> 
> (o algo parecido)
> 
> y luego, analizá el cursor resultante en el campo COMPROBACION
> 
> Rafael Copquin
> 
> 
> 
> El 22/05/2012 12:40 p.m., Rubén O. Rovira escribió:
> > Hola a todos:
> >
> > Les invento un pequeño ejemplo como para ambientar la pregunta que 
> > viene luego.
> >
> > Tengo en SQL Server una tabla donde asiento *Compras* (IdProducto, 
> > Cantidad)
> > y otra donde asiento *Ventas* (IdProducto, Cantidad)
> >
> > Crea una vista *vStock *donde totalizo por IdProducto las compras 
> > menos las ventas
> >
> > ACA VA LA "PREGUNTA":
> >
> > Mi idea es hacer que al guardar una Compra o una Venta, si la
> Cantidad 
> > en la vista vStrock queda menor a cero que SQL mande un error.
> >
> > Se me ocurre ponerle triggers a las tablas de compras y ventas pero 
> > por ahí a alguno se le ocurre algo mas "centralizado" en la vista y 
> > que a mi ahora no se me viene a la cabeza...
> >
> > Espero haberme explicado claramente
> >
> > Saludos
> > --
> > Rubén O. Rovira


Responder a