Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/09/2013, 03:05
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Se puede hacer UPDATE de un SELECT ??

Para que quieres hacer update, no es necesario. La información ya esta en la base de datos


1. Esto da las cantidades vendidas por productos
Código MySQL:
Ver original
  1. SELECT v.cod , sum(v.cant) cant_venta
  2. FROM venta v
  3. GROUP BY v.cod

2. Deberías tener compras en alguna parte

Código MySQL:
Ver original
  1. SELECT c.cod , sum(c.cant) cant_com
  2. FROM compras c
  3. GROUP BY c.cod

3. Luego creas una vista (21.2. Sintaxis de CREATE VIEW)

Código MySQL:
Ver original
  1. CREATE VIEW stocks AS
  2. SELECT p.cod,
  3.              IFNULL(sbcC.cant_com,0)-IFNULL(sbcV.cant_venta,0) stock
  4. FROM  (productos p
  5.                     LEFT JOIN
  6.                          (SELECT v.cod ,
  7.                                        sum(v.cant) cant_venta
  8.                           FROM venta v
  9.                           GROUP BY v.cod) sbcV)
  10.                     ON p.cod=sbcV.cod)
  11.                     LEFT JOIN
  12.                          (SELECT c.cod,
  13.                                        sum(c.cant) cant_com
  14.                            FROM compras c
  15.                            GROUP BY c.cod) sbvC
  16.                     ON p.cod=sbcC.cod;

Esto es el stock NO es necesario que hagas ningún UPDATE. Tendras la vista "stocks" siempre actualizada sin hacer nada.

Las vistas se pueden cansultar igual que una tabla normal....

p.e.

Código MySQL:
Ver original
  1. SELECT cod,stock
  2. FROM stocks
  3. WHERE cod=25;

Esto te da el stock actual del producto 25.

Debes preocuparte de guardar las ventas y las compras .... el stock de unidades se calcula solo.

Se puede sofisticar con un campo para la cantidad inicial de producto en la tabla producto y solo actualizar esa cantidad al inició del ejercicio y luego definir la vista de manera que tenga en cuenta la cantidad inicial y las compras y ventas del ejercicio.

(Ojo, con el tema contable y los precios de compra y venta)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 20/09/2013 a las 03:17