Gracias por compartir las tablas, hubiese estado bien que incluyeras algunos registros pero bueno, ya añadi unos inventados.
Primero de todo, antes de ponerse a diseña una base de datos hay que pensar en su estructuración. Ya que si se hace bien, se facilita mucho la programación y reduces la cantidad de errores que puedan ocurrir ya de entrada.
Es decir medicamtnos en la tabla medicamentos, entregas en la tabla de entregas y recepciones en la tabla de recepciones, y para controlar las diferentes entradas y salidas, una tabla de órdenes donde se diferencien por tipo de orden si es una entrada o una salida.
Te comparto las tablas como las estructuré (sin las órdenes claro) acompañadas de una captura de cómo las rellené:
http://prntscr.com/e7nguv http://prntscr.com/e7nh8h http://prntscr.com/e7nh50
Y acontinuación el SQL que necesitas junto con una captura del resultado:
Entradas:
Código MySQL:
Ver originalmedicamentos.codigo,
medicamentos.medicamento,
SUM(recepcion.cantidad_recibida
) medicamentos
LEFT JOIN recepcion
ON medicamentos.codigo
= recepcion.codigo
http://prntscr.com/e7ngj2 Salidas:
Código MySQL:
Ver originalmedicamentos.codigo,
medicamentos.medicamento,
SUM(entrega.cantidad_entregada
) medicamentos
INNER JOIN entrega
ON medicamentos.codigo
= entrega.codigo
http://prntscr.com/e7ngo5
Como vés, con esos resultados podrías mostrar las entradas y salidas por cada producto y mediante PHP, mostrar el inventario actual.
NOTA: Date cuen que he modificado algunos tipos de campos y he igualado tamaños, no puedes tener tamaños distintos entre tablas y mucho menos tipos de datos. Lo que sean numeros, son integer, los alphanumericos, varchar, fecha y tiempo, datetime, etc...
Espero que, ahora sí, te haya resuelto el tema.
Un saludo