Ver Mensaje Individual
  #16 (permalink)  
Antiguo 14/12/2014, 15:14
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: no consigo haer funcionar a sum()

Cita:
1- sea como sea, se puede arreglar para que te de el resultado negativo sin dar error?
La consulta en sí no debe dar error (a mi no me lo da probando en MySQL), pero te puede dar error en otros contextos, como INSERT, o SP.
No estoy seguro de cómo haces la prueba, así que sin saberlo no te puedo asegurar donde está el fallo.
Cita:
2- cómo tendría que hacer para esa validación de stock previa?
Las validaciones no son tema puramente de SQL, sino fundamentalmente de programación; es en el foro de PHP donde vas a ver eso, pero previendo el asunto te comento que más que usar PHP puro, las validaciones en una web se hacen con Ajax, donde parte es JavaScript y parte PHP.
Pero de todos modos toda validación contra datos de una base va a implicar hacer consultas puntuales a la base para verificar cada cosa. Eso será inevitable.
De hecho, en una web, donde las cosas son asíncronas, una operacion de venta tiene varios nivele s de validación, y todo dato se valida al menos tres veces:
1) Cuando el usuario/cliente busca algo.
2) Cuando ese usuario/Cliente confirma algo.
3) Cuando la operación se registra finalmente.

Y no... es inevitable hacer tres veces la validación en tres etapas diferentes, porque siendo la web concurrente (mas de un usuario/cliente al mismo tiempo) siempre existe la posibilidad de que mientras uno esté haciendo la compra, otro ya haya terminado su compra y ya no tengas existencias suficientes para la operación.
¿Se entiende?

Peor como sea, eso tiene que ver con el diseño del sistema, y no sólo con los datos.

Cita:
pues la verdad no lo sabía, si es un error, no me queda otra que reescribir de nuevo todo, porque las fk deben referenciarse a campos iguales, verdad?
Eso es inevitable... Por eso el diseño de la base debe estar terminado antes de empezar a usarlo productivamente...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)