Ciao,
personalmente comincerei con il trattere a parte guadagni e spese anche perchè ( grattati !)
specialmente di questi tempi un mese potresti avere solo spese senza nessun guadagno
e poi li metterei insieme con una UNION
Una cosa del genere ( ovviamente non provata)
codice:
SELECT sum(guadagno_inventario + guadagno_bombole) as Importo, DATE_FORMAT(data_chiusura, '%Y-%m') as MeseAnno
GROUP BY DATE_FORMAT(data_chiusura, '%Y-%m')
UNION ALL
SELECT -sum(cifra_spesa) , DATE_FORMAT(data_pag, '%Y-%m')
FROM spese group by DATE_FORMAT(data_pag, '%Y-%m')
ed a questo punto basta che fai la somma di importo raggruppata per mese anno
codice:
select sum(importo), meseAnno
from
(
SELECT sum(guadagno_inventario + guadagno_bombole) as Importo, DATE_FORMAT(data_chiusura, '%Y-%m') as MeseAnno
GROUP BY DATE_FORMAT(data_chiusura, '%Y-%m')
UNION ALL
SELECT -sum(cifra_spesa) , DATE_FORMAT(data_pag, '%Y-%m')
FROM spese group by DATE_FORMAT(data_pag, '%Y-%m')
) q
GROUP BY MeseAnno