Has probado a utilizar un 'CASE' dentro del propio Select ?
Algo así como :
Código SQL
[-]Select a_codigo,
Case when a_borrado=0 and a_codigo not in
(select a_codigo from b where b_borrado=0) then a_cantidad
else
(select sum (b_cantidad_real) as suma from b
where b_borrado=0 group by a_codigo)
end
from a
Nota : No he probado la sentencia, por lo que no puedo asegurar que la sintaxis sea la correcta. Pero intento darte la idea para que la desarrolles tu mismo.