Bueno...preguntas
Que base de datos usas?
Pondré un ejemplo en SQL usando Firebird
Código SQL
[-]
select a.idProducto,
a.fecha_movimiento,
(select count(*)
from kardex b
where b.tipo_movto='S'
and b.idProducto=a.idProducto
and b.fecha_movimiento between :Fecha1 and :Fecha2) as SALIDAS,
(select count(*)
from kardex C
where c.tipo_movto='E'
and c.idProducto=a.idProducto
and c.fecha_movimiento between :Fecha1 and :Fecha2) as ENTRADAS,
a.saldo
from kardex a
where a.fecha_movimiento between :fecha1 and :fecha2
group by a.idProducto,
a.fecha_movimiento,
a.saldo
No tengo manera de comprobar si este query funciona, pero podrías verificarlo con tus datos y con tus campos obviamente, sí es que usas SQL....no importa que motor de base de datos, esto sería mas o menos la logica....
Espero te sirva o cuando menos te hayas orientado.
Saludos