Ver Mensaje Individual
  #7 (permalink)  
Antiguo 29/08/2008, 19:46
chelodelsur
 
Fecha de Ingreso: abril-2008
Mensajes: 208
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Select con left join. Consulta compleja...Para mí

Ya revise las tablas, encontré algunos errores, pero nada aun no salgo del problema.
Según veo el problema es que cuando busco fechas mayores a la última cargada en la tabla evaluaciones con la condicion Where, busca un dato que no existe, eso por un lado, al aplicar el Or Is Null, claro me trae los datos, pero (y aquí mi gran duda) solo los agentes que no tienen evaluaciones, o sea trae los agentes (tabla agente) que no estan en la tabla evaluaciones.agente_evaluado. Cuando hago la consulta en un rango de fechas ya pasado la consulta funciona bien.
Pero mi problema es que esta consulta pretende ser usada para listar los agentes y evaluarlos, partiendo como prioridad los que no tienen ninguna, entonces me pongo en el caso que por ejemplo a pricipios de mes (1, o 2 del mes) hagan la consulta y no le liste ningun agente, porque en la tabala evaluaciones aún no se a cargado datos para esa fecha.
Alguna idea o sugerencia ????

Gracias.


Código:
SELECT agentes.nombre_agente as AGENTE_agentes,               
       agentes.empleador_agente as Empresa,
       agentes.tipo_turno as TURNO,
       agentes.estado as ESTADO,
       count(IF(agentes.id_agente='',0,evaluaciones.id_evaluacion)) AS EVALUACIONES       
FROM callcapture.agentes
LEFT JOIN callcapture.evaluaciones
ON agentes.nombre_agente = evaluaciones.agente_evaluado
WHERE evaluaciones.fecha_evaluacion >='2008-06-01' 
and evaluaciones.fecha_evaluacion <= '2008-07-01' or evaluaciones.fecha_evaluacion IS null
GROUP BY agentes.nombre_agente;