Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

michelcoutinho

Query para calculo de Receita X Despesa

Recommended Posts

Amigos,

 

Como faço no mysql uma query que calcule o saldo obtendo a soma de duas colunas receita e despesa de duas tabelas distintas e retorne agrupado por data? Quero obter o somatório das colunas de valores agrupados por data. Quando faço a query a coluna de despesas tem sempre mais registros e acaba fazendo com que os valores se repitam nas colunas de receita.

 

Data Entrada Valor Entrada 01/02/2015 1000 01/02/2015 2000 02/02/2015 2400 02/02/2015 600 03/02/2015 4500 03/02/2015 250 Data Despesa Valor Saída 01/02/2015 500 01/02/2015 1900 02/02/2015 1300 02/02/2015 400 03/02/2015 4000 03/02/2015 150

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala rapaz,

 

São sim, podemos chamar de tabela de receita e de despesas. Como não domino sql, não sei como escrever a query para não repetir os valores da receita que são em quantidade inferior aos da tabela despesas, sem repetir valores quando agrupo por data.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

 

Valeu pela ajuda. Já tinha lido estes posts. A query que eu estou fazendo é assim:

 

SELECT data_pag , data_inclusao , sum(valor_pagar) as valor , sum(valor_receber) as valor_entrada
FROM
pagamentos
INNER JOIN receitas
ON data_pag = data_inclusao
GROUP BY data_pag
O problema é que como a tabela de pagamentos tem mais registros do que a de recebimentos, as receitas vem duplicadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grosso modo

select rec.data, rec,receitas , desp.despesas
from
(select data, sum(valor) receitas
from receitas
gropu by data) rec
(select data, sum(valor) despesas 
from despesas
group by data) desc
where rec.data = desp.data

Compartilhar este post


Link para o post
Compartilhar em outros sites

Apenas umas pequenas correcções ao código do Motta (espero que não se importe):

select rec.data, rec.receitas , desp.despesas
from
(select data, sum(valor) receitas
from receitas
gropu by data) rec
(select data, sum(valor) despesas 
from despesas
group by data) desp
where rec.data = desp.data;

Explicando: a consulta está a usar duas subconsultas (subqueries) e a dar-lhes nomes (rec e desp) para permitir o acesso aos seus campos como se de duas tabelas físicas se tratasse.

 

Se tiveres dúvidas, podes dar uma leitura neste documento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.