Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/01/2012, 12:09
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: consulta SQL que no logro.

Esto devuelve la suma requerida:
Código MySQL:
Ver original
  1. SELECT producto, Salida, Entrada, (Entrada -Salida) ExistenciaActual
  2.     (SELECT producto, SUM(IF(tipo = 'S', cantidad, 0) Salida, SUM(IF(tipo = 'E', cantidad, 0) Entrada
  3.     FROM factura
  4.     GROUP BY producto) T1;

Nota: Usar la misma tabla para las entradas que para las salidas muestra un pésimo diseño de base de datos, porque las entidades que representan a cada acción son distintas y ni siquiera las relaciones de esas entidades con otras son las mismas.
Las compras de mercadería para stock se relacionan con proveedores, mientras que las salidas por venta están relacionadas con los clientes. Son conceptos absolutamente diferentes y no deberían estar integrados en la misma tabla.
Por otro lado, las compras se desglosan por fechas, el valor de la compra tiene variaciones históricas, diferentes compras del mismo producto pueden realizarse a proveedores distintos, y una compra a su vez está relacionada a al menos dos tres documentos distintos (facturas, recibos y remitos), mientras que las ventas se relacionan a uno (facturas propias) o dos (facturas y remitos), pero que representan tablas diferentes.
Como ejercicio, está bien. Como proyecto real... no.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 21/01/2012 a las 12:15