Esto me suena como un simple update. Mencionas PL/SQL así que debes estar usando Oracle, y sobre como hacer un SP en Oracle no tengo ni idea.
Sin embargo, la estructura del query para dicho update, es muy sencilla:
Código:
UPDATE almacen
SET cantidad = a.cantidad - p.cantidad
FROM almacen AS a
INNER JOIN pedidosEstadisticos AS p
ON a.producto = p.producto
AND a.fecha = p.fecha
WHERE a.idAlmacen = @idAlmacen
AND p.cantidad < a.cantidad
Supuse que con reducir quisiste decir sustraer de la cantidad en almacen la cantidad en pedidos.