Como realizar esta consulta

Rodrigo
17 de Octubre del 2002
Hola a todos.
Necesito hacer una consulta que me muestre un inventario a una fecha de corte determinada, y que por ende regenere los saldos a esa fecha de corte.

Codigo Fecha Producto I.D I.R S.D S.R
007095-001 09/08/2002 302287481 100 100 62 62
002154-001 09/08/2002 65444215 80 80 20 20
007095-002 20/08/2002 302287500 100 100 70 70
007095-003 20/08/2002 3022875001 50 50 25 25
007095-004 20/08/2002 302287502 500 500 460 460
I.D=IngresoDocumental, I.R=IngresoReal
S.D=SaldoDocumental, S.R=SaldoReal

El Problema es como regenero los valores de los campos S.D y S.R, por ejemplo actualmente el saldo para el primer codigo es 42, ya que existe una salida por 20 unidades pero con fecha posterior a la solicitada en el informe.

Esta es una consulta que realice:

CREATE PROCEDURE SPInvDctoIng
@RutUsuario Char(12), @FechaCorte datetime
AS

SELECT * FROM kardex WHERE (RutUsuarioZF = RutUsuario) AND (FechaVisacion <= @FechaCorte)
AND IngresoDocumental > (SELECT SUM(DF.Cantidad) FROM dbo.DetalleFacturas DF INNER JOIN dbo.Facturas F ON DF.FacturaID = F.FacturaID WHERE (DF.RutUsuarioZF = @RutUsuario) AND (F.Estado <> 'N') AND (F.FechaFactura <= @FechaCorte) AND Kardex.CodigoZofriID = DF.CodigoZofriID)

El problema es como muestro estos saldos.
Gracias por su ayuda.