Consulta SQL com 3 tabelas, somatório em 2 e agregação

Olá.

Estou usando o banco de dados Firebird 2.5 e tenho 3 tabelas: Clientes (cadastro de cliente/pacientes); Consultas (consultas que os clientes realizaram); Pagamentos (informa os valores pagos pelos clientes).

Esta é a estrutura (básica) das 3 tabelas:

----------------
| CLIENTES     |
|--------------|
| idCli | Nome |
----------------

-------------------------------------
| CONSULTAS C                       |
|-----------------------------------|
| idCons | idCli | Data | ValorCons |
-------------------------------------

---------------------------------
| PAGAMENTOS P                  |
|-------------------------------|
| idPg | idCli | Data | ValorPg |
---------------------------------

Preciso fazer uma consulta que retorne uma outra tabela com os seguintes dados:

  • nome do cliente (tabela CLIENTES)
  • somatorio dos valores das consultas realizadas (tabela CONSULTAS)
  • somatorio dos valores pagos pelo cliente (tabela PAGAMENTOS)
  • saldo do cliente ((somatorio dos valores das consultas) – (somatorio dos valores pagos))

Gostaria de uma saida assim:

------------------------------------------------------------------------------
| RESULTADO                                                                  |
|----------------------------------------------------------------------------|
| Nome | SUM(C.ValorCons) | SUM(P.ValorPg) | SUM(C.ValorCons)-SUM(P.ValorPg) |
------------------------------------------------------------------------------

Já tentei diversas variações do código abaixo (sem sucesso):

 SELECT consultas.idcli,
 SUM(consultas.ValorCons) as TotalCons,
 SUM(pagamentos.ValorPg) as TotalPg,
 SUM(consultas.ValorCons - pagamentos.ValorPg) as saldo,
 clients.nomesocial
 FROM consultas
 LEFT JOIN clients ON consultas.idcli=clients.idcli
 LEFT JOIN pagamentos ON pagamentos.idcli=clients.idcli
 GROUP BY consultas.idcli, clients.nomesocial