Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/05/2017, 23:12
Avatar de sebandrescc2
sebandrescc2
 
Fecha de Ingreso: diciembre-2012
Mensajes: 45
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Suma desde 3 tablas con LEFT JOIN

Gracias Leo muy didáctica la explicación.
Hay varias cosas que no sabía que se podían hacer, como los select dentro del join. Funciona perfecto y aquí el código para que le sirva a alguien mas

Código MySQL:
Ver original
  1. SELECT proyectos.id_pro, proyectos.nom_pro, clientes.nombre, pagos.total_pagos, gastos.total_gastos , sueldos.total_sueldos
  2.     FROM proyectos
  3.    
  4.         INNER JOIN clientes
  5.                 ON proyectos.id_cliente = clientes.id
  6.        
  7.         LEFT JOIN (SELECT id_pro, COALESCE(ROUND(SUM( IF (status_pago='PAGADO', monto_pago, 0) + IF (exc_pago='SI', 0, (monto_pago*0.19)) ),0), NULL, 0) total_pagos
  8.         FROM pagos
  9.         GROUP BY id_pro) pagos
  10.                 ON proyectos.id_pro = pagos.id_pro
  11.    
  12.         LEFT JOIN (SELECT id_pro, COALESCE(ROUND(SUM( IF (status_gasto='PAGADO', monto_gasto, 0) + IF (exc_gasto='SI', 0, (monto_gasto*0.19)) ),0), NULL, 0) total_gastos
  13.         FROM gastos
  14.         GROUP BY id_pro) gastos
  15.                 ON proyectos.id_pro = gastos.id_pro
  16.    
  17.         LEFT JOIN (SELECT id_pro, COALESCE(ROUND(SUM( IF (status_sueldo='PAGADO', monto_sueldo, 0)),0),NULL, 0) total_sueldos
  18.         FROM sueldos
  19.         GROUP BY id_pro) sueldos
  20.                 ON proyectos.id_pro = sueldos.id_pro
  21.            
  22.         ORDER BY proyectos.id_pro DESC
__________________
Aquí voy a escribir mi firma