De todos, creo que jurena fue quien mejor entendió el problema.
prueba esto:
Código sql:
Ver originalSELECT date_format(f2.fecha,'%Y-%m')fecha1, date_format(f1.fecha,'%Y-%m') fecha2, (f2.lec2-f1.lec1)gasto
FROM (SELECT fecha,SUM(lectura)lec1 FROM locales GROUP BY date_format(fecha,'%Y-%m'))f1 INNER JOIN
(SELECT fecha,SUM(lectura)lec2 FROM locales GROUP BY date_format(fecha,'%Y-%m')) f2
ON (DATE_FORMAT(f1.fecha,'%Y-%m') = DATE_FORMAT(DATE_sub(f2.fecha, INTERVAL 1 MONTH),'%Y-%m'))
ORDER BY fecha1;
Nos cuentas como te va.