Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/08/2014, 08:38
franjavmal
 
Fecha de Ingreso: agosto-2014
Ubicación: Cuenca Ecuador
Mensajes: 1
Antigüedad: 9 años, 8 meses
Puntos: 0
Problema update anidado MySQL

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 original
  1. SELECT productosbodega.ExistenciaProductoBodega,
  2.           facturasdetalle.CantidadFacturaDetalle,
  3.           productosbodega.ProductosProductoBodega,
  4.           productosbodega.BodegasProductoBodega
  5. FROM productosbodega
  6. JOIN facturasdetalle
  7. ON productosbodega.ProductosProductoBodega = facturasdetalle.ProductosFacturaDetalle
  8. AND productosbodega.BodegasProductoBodega = facturasdetalle.BodegasOrigenFacturaDetalle    
  9. JOIN facturascabecera ON facturascabecera.CodigoFacturaCabecera = facturasdetalle.FacturasCabeceraFacturaDetalle
  10. WHERE FacturasCabeceraFacturaDetalle='140828084738613'
  11. AND facturasdetalle.ComboProductoFacturaDetalle<>"1"
  12. AND facturascabecera.NumeroFacturaCabecera<>"";
  13.  
  14. Existencia  Cantidad    ProductosProductoBodega BodegasProductoBodega
  15. 583         240 10102013250480  120927162925851
  16. 583         16  10102013250480  120927162925851
El problema se da cuando ejecuto el siguiente update
Código SQL:
Ver original
  1. UPDATE productosbodega
  2. JOIN facturasdetalle
  3. ON productosbodega.ProductosProductoBodega=
  4.      facturasdetalle.ProductosFacturaDetalle
  5. AND productosbodega.BodegasProductoBodega=
  6.       facturasdetalle.BodegasOrigenFacturaDetalle
  7. JOIN facturascabecera
  8. ON facturascabecera.CodigoFacturaCabecera=
  9.      facturasdetalle.FacturasCabeceraFacturaDetalle
  10. SET productosbodega.ExistenciaProductoBodega=
  11. productosbodega.ExistenciaProductoBodega-facturasdetalle.CantidadFacturaDetalle
  12. WHERE FacturasCabeceraFacturaDetalle='140828084738613'
  13. AND facturasdetalle.ComboProductoFacturaDetalle<>"1"
  14. 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

Última edición por gnzsoloyo; 28/08/2014 a las 08:48