Ver Mensaje Individual
  #13 (permalink)  
Antiguo 24/06/2009, 14:22
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: sumar 2 valores

jalh1977

Ahora entiendo un poco ms, y lo creo que necesitas, es la resta de totales entre un mes y otro. La consulta de jurena es fundamental para mostrar todos los valores entre los meses, pero creo que le falta realizar la suma agrupada por mes.

La que yo te pasé, creo que hace lo que necesitas. Te dejo un ejemplo de lo que hice.

Código mysql:
Ver original
  1. mysql> select *from locales;
  2. +--------+------------+---------+
  3. | nombre | fecha      | lectura |
  4. +--------+------------+---------+
  5. | local1 | 2009-01-01 |    6789 |
  6. | local1 | 2009-02-01 |    7000 |
  7. | local1 | 2009-03-01 |    7500 |
  8. | local1 | 2009-04-01 |    7550 |
  9. | local1 | 2009-05-01 |    8000 |
  10. | local1 | 2009-06-01 |    9000 |
  11. | local1 | 2009-06-01 |    9200 |
  12. | local1 | 2009-06-04 |     200 |
  13. | local1 | 2009-05-04 |    1200 |
  14. | local1 | 2009-06-09 |     400 |
  15. +--------+------------+---------+
  16. 10 rows in set (0.00 sec)
  17.  
  18. mysql> SELECT date_format(f2.fecha,'%Y-%m')fecha1, date_format(f1.fecha,'%Y-%m') fecha2, (f2.lec2-f1.lec1)gasto
  19.     -> FROM (select fecha,sum(lectura)lec1 from locales group by date_format(fecha,'%Y-%m'))f1 INNER JOIN
  20.     -> (select fecha,sum(lectura)lec2 from locales group by date_format(fecha,'%Y-%m')) f2
  21.     -> ON (DATE_FORMAT(f1.fecha,'%Y-%m') = DATE_FORMAT(DATE_sub(f2.fecha, INTERVAL 1 MONTH),'%Y-%m'))
  22.     -> order by fecha1 desc;
  23. +---------+---------+-------+
  24. | fecha1  | fecha2  | gasto |
  25. +---------+---------+-------+
  26. | 2009-06 | 2009-05 |  9600 |
  27. | 2009-05 | 2009-04 |  1650 |
  28. | 2009-04 | 2009-03 |    50 |
  29. | 2009-03 | 2009-02 |   500 |
  30. | 2009-02 | 2009-01 |   211 |
  31. +---------+---------+-------+
  32. 5 rows in set (0.00 sec)

Si te fijas es un autojoin, pero no con la tabla directamente como lo hace jurena, sino con la sumatoria por mes de locales.
Mira la sumatoria de lectura para el mes de junio (18800) si le restas el total de mayo (9200) te da 9600.

Según los resultados, si restamos el total de junio (2009-06) con el total de mayo (2009-05)
obtendrás el valor en la consulta. Igual para todos los meses. Acabo de hacer la prueba de escritorio y funciona.

A no ser, siga entendiendo mal.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming