Hola,
Qué motor de bbdd estás usando?
Cliente
Trabajos
Pagos
Código SQL
[-]select cliente.nombre, trabajo.nombre, sum(trabajo.importe) as debe,sum( pago.importe) as haber, sum(trabajo.importe- pago.importe) as saldo
from trabajo
inner join cliente on cliente.id= trabajo.id
left join pago on pago.id=trabajo.id
group by cliente.nombre, trabajo.nombre
se aproxima a lo que necesitas ?
qué pasa si añades la fecha del trabajo y agrupas por esa fecha ? Podrías quitar la tabla de clientes ... tiene sentido ?
Cuéntano cómo te va.
Saludos