Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/08/2011, 16:52
Henkka
 
Fecha de Ingreso: abril-2008
Ubicación: Santa Fe, Argentina
Mensajes: 41
Antigüedad: 16 años
Puntos: 14
Respuesta: Sumar 2 tablas y restar el resultado

Código MySQL:
Ver original
  1. mysql> SELECT * FROM restar; SELECT * FROM saldo;
  2. +----------+---------+------------+---------+
  3. | nfactura | cedula  | nombre     | entrego |
  4. +----------+---------+------------+---------+
  5. |      133 | 3230148 | ARIEL DIAZ |   15000 |
  6. |      133 | 3230148 | ARIEL DIAZ |    5000 |
  7. |      133 | 3230148 | ARIEL DIAZ |   10000 |
  8. |      133 | 3230148 | ARIEL DIAZ |    5000 |
  9. |      134 | 3230148 | ARIEL DIAZ |    1000 |
  10. |      134 | 3230148 | ARIEL DIAZ |    1000 |
  11. +----------+---------+------------+---------+
  12.  
  13. +----------+---------+------------+-------+
  14. | nfactura | cedula  | nombre     | total |
  15. +----------+---------+------------+-------+
  16. |      133 | 3230148 | ARIEL DIAZ | 40000 |
  17. |      134 | 3230148 | ARIEL DIAZ |  6000 |
  18. +----------+---------+------------+-------+

Obtenemos el valor base

Código MySQL:
Ver original
  1. mysql> SELECT sum(total) FROM saldo;
  2. +------------+
  3. | sum(total) |
  4. +------------+
  5. |      46000 |
  6. +------------+

Y el valor que se le va a restar

Código MySQL:
Ver original
  1. mysql> SELECT SUM(entrego) FROM restar;
  2. +--------------+
  3. | SUM(entrego) |
  4. +--------------+
  5. |        37000 |
  6. +--------------+

Ahora, operar con estos dos números no relacionados en nada ubicados en dos tablas distintas es un poco complicado en cuanto a las relaciones, sería mucho mejor obtener los 2 valores y operarlos con un lenguaje de programación, pero aún así es posible con MySQL.

Estoy seguro de que esta no debe ser la mejor manera, tal vez alguien pueda corregirme con algo más optimizado

Código MySQL:
Ver original
  1. mysql> SELECT (sum(total) - entrego) AS resultado FROM (SELECT total, sum(entrego) AS entrego FROM saldo, restar GROUP BY total) AS t1;
  2. +-----------+
  3. | resultado |
  4. +-----------+
  5. |      9000 |
  6. +-----------+

Última edición por Henkka; 04/08/2011 a las 17:51