Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/07/2012, 16:03
Avatar de Erick_Lucas
Erick_Lucas
 
Fecha de Ingreso: enero-2009
Ubicación: Manta
Mensajes: 47
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Procedimiento Almacenado con Cursor para Actualizar Stock de Productos

Precisamente, mi intención era realizar un proceso de actualización nocturno. Aunque la idea de mantener los resultados de stock en linea, me parece muchísimo más.

He podido realizar el UPDATE sin necesidad de CURSOR gracias a ambos. Sólo que la resta no me ha resultado como esperaba, les muestro mi código:

Código SQL:
Ver original
  1. UPDATE Productos SET Stock=Stock-venta.vendido FROM (SELECT SUM(CANTIDAD) AS vendido FROM Ventas WHERE FECHA>='04-07-2012' AND FECHA<='05-07-2012' GROUP BY ID_PROD) AS venta
  2. WHERE Productos.Codigo_producto IN
  3. (SELECT Ventas.Codigo_producto FROM Ventas
  4. WHERE FECHA >='04-07-2012' AND FECHA<='05-07-2012')

En este día tengo 3 artículos vendidos, con cantidad de 4, 6 y 18, respectivamente. El primero si es restado 4, pero los demás restan valores que no son. No sé que estaré haciendo mal.


Edito:

Ya pude solucionar el problema, había olvidado utilizar el INNER JOIN que en principio me había recomendado iislas, después de modificar y probar el nuevo UPDATE la resta se generó exitosamente, dejo aquí el código


Código SQL:
Ver original
  1. UPDATE Productos
  2. SET Stock=Stock-venta.vendido
  3. FROM Productos prod
  4. INNER JOIN (SELECT Codigo_producto, SUM(CANTIDAD) AS vendido FROM Ventas WHERE FECHA>='04-07-2012' AND FECHA<='05-07-2012' GROUP BY Codigo_producto) AS venta
  5. ON prod.Codigo_producto = ventas.Codigo_producto

Muchísmas gracias tanto a iislas como a Libras

Saludos cordiales

Última edición por Erick_Lucas; 11/07/2012 a las 16:21