Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/05/2013, 06:12
sanymatu
 
Fecha de Ingreso: enero-2013
Mensajes: 14
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: Inner join y Left join

Bueno parece que encontre la solucion, dejo el codigo por si a alguien mas le sirve

Código MySQL:
Ver original
  1. SELECT emp.id AS idEmp, emp.nombreApellido, plani.totalSueldo, vale.totalVales, plani.diasTrabajados,
  2.         plani.mes, plani.totalEntregadas, plani.totalSinDoc, plani.totalDev, plani.totalMes, plani.costoCliente
  3.         FROM empleados AS emp
  4.         INNER JOIN(SELECT plani.fechaPlanilla, plani.idEmpleado, SUM(plani.sueldo) AS totalSueldo, count(DAY(fechaPlanilla)) AS diasTrabajados,
  5.         MONTH(fechaPlanilla) AS mes, SUM(entPorta+entCel) AS totalEntregadas, SUM(sinDocPorta+sinDocCel) AS totalSinDoc, SUM(devPorta+devCel) AS totalDev, SUM(entPorta+entCel+devPorta+devCel+sinDocPorta+sinDocCel) AS totalMes, plani.costoCliente
  6.         FROM planillaDiaria AS plani WHERE MONTH(plani.fechaPlanilla)=MONTH('".$informe->getDesde()."')
  7.         GROUP BY plani.idEmpleado) plani ON plani.idEmpleado=emp.id LEFT JOIN(SELECT vale.idEmpleado, SUM(vale.importeVale) AS totalVales, vale.fechaVale
  8.         FROM vales AS vale WHERE MONTH(vale.fechaVale)=MONTH('".$informe->getDesde()."')
  9.         AND fechaAnulacion='0000-00-00'
  10.         GROUP BY vale.idEmpleado) vale ON vale.idEmpleado=emp.id ORDER BY emp.nombreApellido

Esto relaciona tres tablas:

empleados - id empleado, otro campos
planilladiaria - idempleado, otros campos
vales - idempleado, otros campos