bueno, creo que el asunto le está quedando grande a paradox, que supongo que intentará levantar todo a memoria para hacer las operaciones... desconozco sus capacidades de paginación/cache, pero creo que serán nulas o cuando mucho, básicas.
Quizas no es el momento adecuado, pero es hora de comenzar a pensar en migrar a una base de datos de verdad.
También me parece un verdadero pecado tener un XP corriendo sobre 128 MB de ram. En mi experiencia, solo con el sistema operativo y un par de micadas, ya es necesario paginar. Podes intentar establecer un archivo de paginación fijo, muy, muy grande, y mandar a pedir suficientes pizzas para esperar que acabe el proceso.
Otra solución que te queda, es hacerlo "manualmente", recorriendo registro por registro en delphi y almacenandolo en una nueva tabla de resumen.
Sobre la opción que plantee al inicio, con uniones, supongo que también dará los mismos problemas de memoria, pero es cosa de probar... seria algo como:
Código SQL
[-]
select q1.Cliente, sum(q1.Credito), sum(q1.Prestamo)
from (
select c.cliente, c.credito, 0 prestamo
from credito
union
select p.cliente, 0 credito, p.prestamo
from prestamo
) q1
group by q1.cliente;
Hasta luego.
