Hola como estas! yo lo encararia de otra forma al problema. Podrias hacer una tabla que tenga los siguientes campos:
-idOperacion
-codArticulo
-fechaCompra
-fechaVenta
-importeCompra
-importeVenta
Entonces al momento de hacer la compra se crea un registro nuevo con la fecha de compra y el importe de la compra (la fecha de venta y monto de venta estaran vacios porque todavia no se vendieron)
Al momento de hacer la venta, sobre el registro en cuestion, guardamos la fecha de venta y el importe de venta.
Luego podes agregar una grilla con un campo calculado "Total" y la consulta para filtrar por fechas. El campo caml seria algo asi:
Código Delphi
[-]
...
Total := QueryimporteVenta.Value - QueryimporteCompra.Value;
...