C sharp - Descontar stock sqlite

 
Vista:

Descontar stock sqlite

Publicado por Fede (2 intervenciones) el 25/07/2023 15:10:10
Hola tengo 2 tablas en sqlite, una se llama Producto y la otra Componente

La tabla Producto tiene los siguientes campos: Codigo, Descripcion, Stock
Mientras que la tabla Componente tiene los Campos: Codigo, CodigoComponente, DescripcionCodigoComponente, CantidadComponente

Intento esto para poder descontar del stock pero me descuenta la cantidad del primer componente encontrado.

query.AppendLine("UPDATE Producto Set Stock = Stock - @pcantidad * (Select Cantidad FROM Componente WHERE Codigo = Codigo)");

Explico para que lo entiendan mejor.
Por ejemplo Si agrego a la venta en el DataGridView el Producto de Codigo 1000 automaticamente deberia buscar en la tabla Componente el Codigo 1000 donde puede haber 1 o mas componentes con su cantidad respectiva.
En este caso en la tabla Componente el Producto 1000 este conformado por
Producto1 con una Cantidad = 2
Producto2 con una Cantidad = 1
Entonces por cada Producto 1000 que se agregue a la venta se tienen que descontar del stock Producto1 y Producto2 con su Cantidad establecida.
Si salen 2 Productos 1000 del stock se descontaran
4 Producto1 y 2 Producto2

Para colmo en sqlite no admite update junto a Inner Join
Como puedo lograr descontar el stock?
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

Descontar stock sqlite

Publicado por Yamil Bracho (4 intervenciones) el 25/07/2023 15:54:14
Supongo que el campo codigo en componente se refiere al Codigo del producto

query.AppendLine("UPDATE Producto Set Stock = Stock - @pcantidad * (Select Cantidad FROM Componente c WHERE c,Codigo = Codigo) WHERE Codigo=CodigoProductoAActualizar");

Si no le colocasl el WHERE Codigo=CodigoProductoAActualizar" lo hace para todos los productos y no para el que quieres actualizar en particular.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar