El fiel reflejo de los datos seria calcular lo que la base tiene guardado, aqui otro punto de vista
Código SQL
[-]
SELECT Ventas.Fecha, ... , Sum(PagoVenta.Importe) AS SumaDePago, (Ventas.Importe - SumaDePago) AS Saldo
FROM (Ventas LEFT JOIN PagoVenta ON Ventas.IdVenta = PagoVenta.IdVenta)
GROUP BY Ventas.Fecha, ... ;