Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/04/2011, 15:07
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Devolver suma de otra tabla

hola miktrv:

igual y ya encontraste la solución a tu pregunta, pues la publicaste hace días, de cualquier manera te dejo una solución:

Código MySQL:
Ver original
  1. mysql> create table tabla1 (id int, superficie int);
  2. Query OK, 0 rows affected (0.08 sec)
  3.  
  4. mysql> insert into tabla1 values (1,200),(2,300),(3,350);
  5. Query OK, 3 rows affected (0.05 sec)
  6. Records: 3  Duplicates: 0  Warnings: 0
  7.  
  8. mysql> select * from tabla1;
  9. +------+------------+
  10. | id   | superficie |
  11. +------+------------+
  12. |    1 |        200 |
  13. |    2 |        300 |
  14. |    3 |        350 |
  15. +------+------------+
  16. 3 rows in set (0.00 sec)
  17.  
  18. mysql> create table tabla2 (caso_id int, superficie1_id int, superficie2_id int)
  19. ;
  20. Query OK, 0 rows affected (0.06 sec)
  21.  
  22. mysql> insert into tabla2 values (1,1,2),(1,2,3),(2,1,2),(3,2,3);
  23. Query OK, 4 rows affected (0.02 sec)
  24. Records: 4  Duplicates: 0  Warnings: 0
  25.  
  26. mysql> select * from tabla2;
  27. +---------+----------------+----------------+
  28. | caso_id | superficie1_id | superficie2_id |
  29. +---------+----------------+----------------+
  30. |       1 |              1 |              2 |
  31. |       1 |              2 |              3 |
  32. |       2 |              1 |              2 |
  33. |       3 |              2 |              3 |
  34. +---------+----------------+----------------+
  35. 4 rows in set (0.00 sec)
  36.  
  37. mysql> select caso_id, sum(sup) sup from
  38.     -> (
  39.     -> select T2.caso_id, T1_1.id, T1_1.superficie sup
  40.     -> from tabla2 T2 inner join tabla1 T1_1 on T2.superficie1_id = T1_1.id
  41.     -> union
  42.     -> select T2.caso_id, T1_2.id, T1_2.superficie sup
  43.     -> from tabla2 T2 inner join tabla1 T1_2 on T2.superficie2_id = T1_2.id
  44.     -> ) T group by T.caso_id;
  45. +---------+------+
  46. | caso_id | sup  |
  47. +---------+------+
  48. |       1 |  850 |
  49. |       2 |  500 |
  50. |       3 |  650 |
  51. +---------+------+
  52. 3 rows in set (0.00 sec)
  53.  
  54. mysql>

Saludos
Leo