Ver Mensaje Individual
  #3  
Antiguo 26-03-2014
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Parece ser que siempre que insertas un registro en PRESTAMOS le restas todas las cantidades de los registros que se correspondan con ese material.
Solo deberías restarle el del registro que estás insrtando:

Código SQL [-]
CREATE OR ALTER TRIGGER STOCK_MATERIALES FOR PRESTAMOS
ACTIVE AFTER INSERT POSITION 0
AS
begin
  /*
  Esto devuelve la suma de todos los préstamos, no solo del de este registro
  select sum(cantidad_material1) from prestamos where id_material1 = new.id_material1

  update libros
  set cantidad_lib = -1 *(select sum(cantidad_material1) from prestamos where id_material1 = new.id_material1)
  where idlibro = new.id_material1;
  */

  update libros 
  set cantidad_lib = cantidad_lib - new.cantidad_material1
  where idlibro = new.id_material1;
end
Responder Con Cita