Buenos días el problema que tengo es que quiero actualizar un tabla con un update anidado para actualizar las existencias de los productos después de grabar una factura. Tengo una tabla donde guardo las existencias por cada bodega de cada ítem si ejecuto el select el resultado es el siguiente
Código SQL:
Ver originalSELECT productosbodega.ExistenciaProductoBodega,
facturasdetalle.CantidadFacturaDetalle,
productosbodega.ProductosProductoBodega,
productosbodega.BodegasProductoBodega
FROM productosbodega
JOIN facturasdetalle
ON productosbodega.ProductosProductoBodega = facturasdetalle.ProductosFacturaDetalle
AND productosbodega.BodegasProductoBodega = facturasdetalle.BodegasOrigenFacturaDetalle
JOIN facturascabecera ON facturascabecera.CodigoFacturaCabecera = facturasdetalle.FacturasCabeceraFacturaDetalle
WHERE FacturasCabeceraFacturaDetalle='140828084738613'
AND facturasdetalle.ComboProductoFacturaDetalle<>"1"
AND facturascabecera.NumeroFacturaCabecera<>"";
Existencia Cantidad ProductosProductoBodega BodegasProductoBodega
583 240 10102013250480 120927162925851
583 16 10102013250480 120927162925851
El problema se da cuando ejecuto el siguiente update
Código SQL:
Ver originalUPDATE productosbodega
JOIN facturasdetalle
ON productosbodega.ProductosProductoBodega=
facturasdetalle.ProductosFacturaDetalle
AND productosbodega.BodegasProductoBodega=
facturasdetalle.BodegasOrigenFacturaDetalle
JOIN facturascabecera
ON facturascabecera.CodigoFacturaCabecera=
facturasdetalle.FacturasCabeceraFacturaDetalle
SET productosbodega.ExistenciaProductoBodega=
productosbodega.ExistenciaProductoBodega-facturasdetalle.CantidadFacturaDetalle
WHERE FacturasCabeceraFacturaDetalle='140828084738613'
AND facturasdetalle.ComboProductoFacturaDetalle<>"1"
AND facturascabecera.NumeroFacturaCabecera<>"";
Solo se actualiza el primer dato es decir solo se restan los 240 y no los 16.
Qué creen ustedes que puede ser?
Gracias por su ayuda.
Francisco Maldonado