Fórum SQL - FIREBIRD - TOTAIS DE SALDO A RECEBER E PAGAR #532428
22/09/2015
0
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!
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!
Cezar Moniz
Curtir tópico
+ 0
Responder
Posts
24/09/2015
Mateus Carvalho
Deixa eu ver se eu entendi, você conseguiu filtrar os dados e só está querendo obter o total?
Responder
Gostei + 0
01/12/2015
Cezar Moniz
Prezado.
Sim. Tentei colocar os resultados dentro de cada variável dos selects.
Não sei se tem forma mais adequada de resolver esta questão.
Abs
Sim. Tentei colocar os resultados dentro de cada variável dos selects.
Não sei se tem forma mais adequada de resolver esta questão.
Abs
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)