Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/03/2008, 07:32
Avatar de Beakdan
Beakdan
 
Fecha de Ingreso: diciembre-2001
Ubicación: Monterrey, Nuevo León
Mensajes: 433
Antigüedad: 23 años
Puntos: 7
Re: Una Sobre Cursores

Hay problemas difíciles de expresar con operadores relacionales, que podría ser candidatos para utilizar un cursor, pero este no es el caso.
Creo que falta que indiques una tabla más. Supongo que tienes una tabla en la cual guardas una relación de tragos vendidos. Usando JOINS y funciones de agregado, podemos obtener en un solo paso el total usado para cada bebida. Luego, se usa ese resultado para decrementar el stock en un solo update. Usando el cursor ocurrirían mútiples updates lo cual lo haría una opción ineficiente.
Lo que me confunde es esto:
Cita:
cuando se VENDA un WHISKY CON COCA COLA se deben DESCONTAR del stock de BEBIDAS
Si lo necesitas actualizar cuando se vende el trago, ¿para que necesitas un cursor? Sigue siendo un sencillo update.

Algo como:
Código:
UPDATE        BEBIDAS
SET        cant_stock = cant_stock - c.proporcion
FROM        BEBIDAS AS upd
INNER JOIN    COMPOSICIONES AS c
        ON upd.id_bebida = c.id_bebida
WHERE        c.id_trago = ?
Donde simplemente debes pasar el id_trago de "WHISKY CON COCA COLA" y listo.