hay dos manerass de solucionar el problema
una es que al crear tus tablas declares que los valores numericos no puedan ser nulos y les pongas un valor por omición de cero
(es lo que yo hago aun en sql server que tiene una función para sustituir los valores nulos por lo que se quiera y esta es isnull(calmpo, valor) si campo es nulo regresa el valor, no se si intebase la tenga)
la otra forma es mucho mas laborioza y es hacer la union de varias consultas (filtrando en cada consulta los registros que tengan nulos y cambiando las operaciones en cada caso)
ejemplo:
select nombre, cargos-abonos saldo from tabla
where cargo is not null and abono is not null
union
select nombre, cargos-abonos saldo from tabla
where cargo is not null and abono is null
union
select nombre, -abonos saldo from tabla
where cargo is null and abono is not null
(esto se pude poner muy complicado si son mas campos)
espero te sirva esto