Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema update anidado MySQL

Estas en el tema de Problema update anidado MySQL en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 28/08/2014, 08:38
 
Fecha de Ingreso: agosto-2014
Ubicación: Cuenca Ecuador
Mensajes: 1
Antigüedad: 9 años, 7 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
  #2 (permalink)  
Antiguo 01/09/2014, 00:39
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Problema update anidado MySQL

Código MySQL:
Ver original
  1. UPDATE productosbodega
  2. JOIN facturasdetalle ON productosbodega.ProductosProductoBodega=facturasdetalle.ProductosFacturaDetalle
  3.             AND productosbodega.BodegasProductoBodega=facturasdetalle.BodegasOrigenFacturaDetalle
  4. SET productosbodega.ExistenciaProductoBodega=productosbodega.ExistenciaProductoBodega-facturasdetalle.CantidadFacturaDetalle
  5. WHERE FacturasCabeceraFacturaDetalle='140828084738613'
  6. AND facturasdetalle.ComboProductoFacturaDetalle<>"1";

Si FacturasCabeceraFacturaDetalle='140828084738613' y facturascabecera.CodigoFacturaCabecera= facturasdetalle.FacturasCabeceraFacturaDetalle es innecesario que hagas facturascabecera.NumeroFacturaCabecera<>"".

Sobre esto facturasdetalle.ComboProductoFacturaDetalle<>"1" no se que decirte.

En cuanto a si con esto vas a solucionar tu problema lo dudo.

Por otro lado excepto que estes en una situción de variación de precios nula, permanente, (inflación cero). Como solucionas el tema de calcular el valor de las existencias.

Imagina que has comprado del producto X 10 unidades a 10um (unidades monetarias) y unos dias despues 10 unidades mas a 15um, si al dia siguiente vendes 6 unidades de X. Cuanto valen tus existencias. (No me digas que depende de a cuanto hayas vendido las 6 unidades por que no tiene nada que ver).
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:49.