[firebase-br] Firebird - SQl - Totalizadores de saldos

Cezar Moniz cezar em rtcm.com.br
Ter Set 22 10:32:57 -03 2015


Prezados,

Estou com um problema que acredito ser de fácil resolução, mas não consigo
enxergar uma formula. Por isso peço a ajuda e paciência ao grupo.

Tenho uma tabela de Conta Corrente de Pessoas:

cod_aluno dt_vencimento valor_mensalidade dt_pagamento valor_recebido pago
001 01 09 2015 120,00 05 09 2015 120,00 S
002 05 09 2015 140,00 05 09 2015 140,00 S
003 05 09 2015 120,00 0,00 N
004 01 09 2015 140,00 01 09 2015 100,00 S

Preciso totalizar:
por Total _Receber (valor_mensalidade) em um período qualquer;
por Total_recebido (valor_recebido) em um período qualquer;
a diferença caso exista entre a receber e recebido e pago
Totais gerais do perido: Seja a soma geral de Valor_mensalidade e
Valor_recebido

Tudo na mesma query.

Eu consegui chegar a query abaixo, mas não sei se o caminho é este:
Faltam os totalizadores gerai...

SELECT distinct
(SELECT SUM(VALOR_MENSALIDADE) FROM CC_ALUNOS WHERE (PAGO='S') AND
(data_vencimento BETWEEN :INICIO AND :FINAL)) AS TOTAL_RECEBER_PERIODO,
(SELECT SUM(VALOR_MENSALIDADE) FROM CC_ALUNOS WHERE (PAGO='S') AND
(extract(MONTH from DATA_VENCIMENTO) = extract(MONTH from
CURRENT_DATE+31))) AS TOTAL_RECEBER_30DIAS,
(SELECT SUM(VALOR_RECEBIDO) FROM CC_ALUNOS WHERE PAGO='S' AND
(data_vencimento BETWEEN :INICIO AND :FINAL)) AS TOTAL_RECEBIDO_PERIODO,
(SELECT SUM(VALOR_RECEBIDO) FROM CC_ALUNOS WHERE PAGO='S') AS
TOTAL_RECEBIDO_GERAL,
(SELECT SUM(VALOR_MENSALIDADE)+SUM(VALOR_RECEBIDO) FROM CC_ALUNOS WHERE
PAGO='S' AND (DATA_PAGAMENTO BETWEEN :INICIO AND :FINAL)) AS
TOTAL_GERAL_PERIODO,
(SELECT SUM(VALOR_MENSALIDADE)+SUM(VALOR_RECEBIDO) FROM CC_ALUNOS WHERE
PAGO='S') AS TOTAL_GERAL
from cc_alunos group by data_vencimento

Alguma orientação e/ou Luz...

Obrigado ao grupo!



Mais detalhes sobre a lista de discussão lista