Ayuda con un trigger
Publicado por Andres (1 intervención) el 07/11/2011 01:33:30
Hola a todos, estoy asiendo un sistema el cual es un punto de ventas y tiene lo que es el manejo del inventario, y estoy asiendo un trigger para que cuando yo realice un pedido, osease compre productos para veenderlos, al actualizar el campo de estado en la tabla de pedidos los productos que compre se se sumen a la tabla de almacen. Estas son mis tablas y mi codigo, espero y alguien pueda ayudarme.
Tabla Almacen:
IDproducto
Existencia
Tabla Pedidos:
IDpedido
IDproveedor
Total (Costo total del pedido)
Fecha
Estado
Tabla Detalles_Pedido:
IDpedido
IDproducto
Cantidad (Cantidad del producto que compre)
Total (Costo total de la cantidad del producto que compre)
En la tabla de detalles_pedidos muestro los productos que compre en un pedido y la cantidad del producto y cuando en la tabla pedidos cambie el estado de Pendiente a Recibido se sumen las cantidades a la tabla de almacen, aqui mi codigo:
alter trigger SumarProductos
on Pedidos
after UPDATE
as
begin
declare @estado varchar(20)
declare @idpedido int
select @estado=Estado,
@idpedido=idpedido
from inserted ins
if @estado = 'Recibido'
update Almacen set Existencia = existencia + (select cantidad from Detalles_Pedidos where idpedido = (@idpedido) and idproducto = (select a.idproducto from almacen as a inner join detalles_pedidos as d on a.idproducto = d.idproducto inner join pedidos as p on d.idpedido = p.idpedido))
end
cando actualizo la tabla de pedidos me marca el siguiente error:
Mens 512, Nivel 16, Estado 1, Procedimiento SumarProductos, Línea 12
La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.
Se terminó la instrucción.
Tabla Almacen:
IDproducto
Existencia
Tabla Pedidos:
IDpedido
IDproveedor
Total (Costo total del pedido)
Fecha
Estado
Tabla Detalles_Pedido:
IDpedido
IDproducto
Cantidad (Cantidad del producto que compre)
Total (Costo total de la cantidad del producto que compre)
En la tabla de detalles_pedidos muestro los productos que compre en un pedido y la cantidad del producto y cuando en la tabla pedidos cambie el estado de Pendiente a Recibido se sumen las cantidades a la tabla de almacen, aqui mi codigo:
alter trigger SumarProductos
on Pedidos
after UPDATE
as
begin
declare @estado varchar(20)
declare @idpedido int
select @estado=Estado,
@idpedido=idpedido
from inserted ins
if @estado = 'Recibido'
update Almacen set Existencia = existencia + (select cantidad from Detalles_Pedidos where idpedido = (@idpedido) and idproducto = (select a.idproducto from almacen as a inner join detalles_pedidos as d on a.idproducto = d.idproducto inner join pedidos as p on d.idpedido = p.idpedido))
end
cando actualizo la tabla de pedidos me marca el siguiente error:
Mens 512, Nivel 16, Estado 1, Procedimiento SumarProductos, Línea 12
La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión.
Se terminó la instrucción.
Valora esta pregunta


0