Hola amigos.. tengo la sgte consulta: tengo 2 tablas y necesito sumar todas las filas de un campo en especifico
de ambas tablas dependiendo del rut y luego el resulto de ambos restarlo..
pero me encuentro con un problema ya que en la suma
SUM(total_dias) as total_dias1 de la tabla "franquia" me debiera dar "6" ya que es
el unico registro que tengo en ese campo, pero me da 18,
al parecer me esta multiplicando el 6 por el numero de filas de la otra tabla "embarque"
alguien me podria ayudar porfavor..
Código:
SELECT personal.rut,
SUM(dias_rojos) as Dias_Rojos1, SUM(total_dias) as total_dias1 ,
SUM(dias_rojos-total_dias) as Resta
FROM embarque,franquia,personal
WHERE personal.rut=embarque.rut AND
personal.rut=franquia.rut AND embarque.rut=franquia.rut
AND personal.rut='14086066'
GROUP BY rut;
+----------+-------------+-------------+-------+
| rut | Dias_Rojos1 | total_dias1 | Resta |
+----------+-------------+-------------+-------+
| 14086066 | 18 | 18 | 0 |
+----------+-------------+-------------+-------+
EMBARQUE
SELECT rut,fecha_embarque,fecha_desembarque,dias_rojos
FROM embarque where rut='14086066';
+----------+----------------+-------------------+------------+
| rut | fecha_embarque | fecha_desembarque | dias_rojos |
+----------+----------------+-------------------+------------+
| 14086066 | 2007-02-12 | 2007-04-27 | 12 |
| 14086066 | 2007-08-22 | 2007-09-10 | 3 |
| 14086066 | 2007-07-23 | 2007-08-13 | 3 |
+----------+----------------+-------------------+------------+
FRANQUIA
SELECT rut,fecha_inicio,fecha_termino,total_dias
FROM franquia WHERE rut='14086066';
+----------+--------------+---------------+------------+
| rut | fecha_inicio | fecha_termino | total_dias |
+----------+--------------+---------------+------------+
| 14086066 | 2007-09-11 | 2007-09-17 | 6 |
+----------+--------------+---------------+------------+
espero su ayuda amigos..
gracias