Ver Mensaje Individual
  #10 (permalink)  
Antiguo 13/01/2016, 20:01
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Restar campos de diferentes tablas por fechas

Código MySQL:
Ver original
  1. mysql> SELECT
  2.     ->     ing.Mes, ing.Anio, Ingresos, Gastos, (ingresos - gastos) saldo,  SUM(ingresos - gastos) Acumulado
  3.     -> FROM
  4.     ->     (SELECT
  5.     ->         MONTH(fecha) mes, YEAR(fecha) anio, SUM(monto) ingresos
  6.     ->     FROM
  7.     ->         cajamonto
  8.     ->     GROUP BY MONTH(fecha) , YEAR(fecha)) ING
  9.     ->         INNER JOIN
  10.     ->     (SELECT
  11.     ->         MONTH(fecha) mes, YEAR(fecha) anio, SUM(importe) gastos
  12.     ->     FROM
  13.     ->         cajachica
  14.     ->     GROUP BY MONTH(fecha) , YEAR(fecha)) GTS ON ing.mes = gts.mes
  15.     ->         AND ing.anio = gts.anio
  16.     -> GROUP BY ing.Mes WITH ROLLUP;
  17. +------+------+----------+--------+--------+-----------+
  18. | Mes  | Anio | Ingresos | Gastos | saldo  | Acumulado |
  19. +------+------+----------+--------+--------+-----------+
  20. |    1 | 2016 |  1460.00 | 550.00 | 910.00 |    910.00 |
  21. |    2 | 2016 |   889.00 | 441.00 | 448.00 |    448.00 |
  22. |    3 | 2016 |   453.00 | 520.00 | -67.00 |    -67.00 |
  23. |    4 | 2016 |   950.00 | 340.00 | 610.00 |    610.00 |
  24. | NULL | 2016 |   950.00 | 340.00 | 610.00 |   1901.00 |
  25. +------+------+----------+--------+--------+-----------+
  26. 5 rows in set (0.00 sec)
La repetición de datos en la última linea es inevitable para lo que quieres hacer, al menos desde el SQL.

Para evitar eso hay que utilizar variables de sesion de usuario, que necesitan mucha práctica.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)