Quizá te pueda valer lo siguiente :
Código SQL
[-]Select T1.fecha, T1.detalle,
case when T1.cantidad > 0 then
T1.cantidad
else
0
end as Entrada,
case when T1.cantidad < 0 then
T1.cantidad
else
0
end as Salida, Sum(T2.Cantidad) Stock
from Tabla T1 inner join Tabla T2 on T1.Fecha >= T2.Fecha
group by T1.fecha, T1.detalle, T1.cantidad
order by fecha
Puede ser que tengas entradas y salidas el mismo día, por lo que en la condición de join tendrías que incluír algo más para el cálculo del acumulado, como pudiese ser un código incremental u otra clave.
Un saúdo