Boa noite, tenho a seguinte questão, tenho uma tabela com campo "valor" que guarda um valor monetário e campo "data" com a data do lançamento e um campo "tipo" marcando se é entrada ou saida, ao cadastrar um valor, coloco a data e qual tipo "entrada" ou "saida" quero montar uma view que soma todos os valores por mês, separados por tipo, se é entrada ou saida. A seguinte query me tras a soma, porém não agrupa pelo MES/ANO
SELECT
DATE_FORMAT(data, "%m/%Y") as MES,
(select Sum(valor) from controle WHERE tipo = 'SAIDA' ) as VS, // soma tudo que for SAIDA
(select Sum(valor) from controle WHERE tipo = 'ENTRADA' ) as VE // soma tudo que for ENTRADA
FROM controle
GROUP BY YEAR(data), MONTH(data) // agrupa por ANO/MES mas este grupo nao opera nas somas dos valores
ORDER BY data DESC
Esta query somas os valores mas não filtra pelo mes/ano e tras a soma total de tudo ignorando o mes, mostra o mesmo valor total de cada tipo em todos os meses:
EXEMPLO DO RESULTADO
MES VS(saida) VE(entrada)
06/2020 4600,00 9750,00
05/2020 4600,00 9750,00
04/2020 4600,00 9750,00
Na prática cada mês deveria retornar as somas dos valores apenas dele. Como fazer com que GROUP BY YEAR(data), MONTH(data) tenha efeito correto em cada tipo?