Retorno da consulta por Meses

16/08/2022

0

Pessoal, estou precisando retornar o valor total de receita e valor total de despesas por mês nesse estilo:

Despesa Receita
Janeiro 50.00 200.00
Fevereiro 0 500.00
Março 100.00 500.00

Cheguei a essa consulta abaixo mas esta retornando o mesmo valor para todos os mês

SELECT MONTHNAME(`data_vencimento`) as mes, (SELECT SUM(`valor`) as valor_total FROM lancamentos WHERE tipo = 'despesa' and YEAR(`data_vencimento`) = 2022 AND `empresa` = 1) as despesas, (SELECT SUM(`valor`) as valor_total FROM lancamentos WHERE tipo = 'receita' and YEAR(`data_vencimento`) = 2022 AND `empresa` = 1) as receitas From lancamentos GROUP BY MONTH(`data_vencimento`) ORDER BY MONTH (`data_vencimento`);


O Retorno esta assim

Despesa Receita
Janeiro 50.00 200.00
Fevereiro 50.00 200.00
Março 50.00 200.00

Alguém consegue me ajudar com essa consulta?

Obrigado
Fabio Zech

Fabio Zech

Responder

Posts

26/12/2022

Arthur Heinrich

Comece pelo básico, depois formate.

No MySQL, as datas são armazenadas em formato 'YYYYMMDD'. Se você quer o mês, pode pegar os primeiros 6 caracteres.

SELECT
substring(`data_vencimento`,1,6) as mes,
sum(case tipo = 'despesa' then `valor` else 0 end) as despesas,
sum(case tipo = 'receita' then `valor` else 0 end) as receitas
From lancamentos
GROUP BY substring(`data_vencimento`,1,6)
ORDER BY 1;

Depois, se quiser, formate o mês como quiser.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar