Esto devuelve la suma requerida:
Código MySQL:
Ver originalSELECT producto
, Salida
, Entrada
, (Entrada
-Salida
) ExistenciaActual
(SELECT producto
, SUM(IF(tipo
= 'S', cantidad
, 0) Salida
, SUM(IF(tipo
= 'E', cantidad
, 0) Entrada
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.