SQL - Ayuda con un trigger

 
Vista:

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder