Ver Mensaje Individual
  #8 (permalink)  
Antiguo 05/12/2012, 05:53
RabidFish
 
Fecha de Ingreso: julio-2008
Ubicación: Córdoba, Argentina
Mensajes: 266
Antigüedad: 16 años, 4 meses
Puntos: 26
Respuesta: Consulta de certificados médicos sin inasistencias asociadas

gnzsoloyo, es la que está más arriba, sólo que probé con LEFT en la quinta línea como me había dicho Heimish2000. Sigo obteniendo los mismos registros que antes, es decir los certificados que no tienen TODAS las inasistencias asociadas, pero al menos tienen una. Eso es correcto y está bien que me los devuelva, pero además necesito los que no tengan ninguna inasistencia asociada.

Código MySQL:
Ver original
  1. SELECT certificado_medico.*
  2. FROM certificado_medico
  3. INNER JOIN empleado ON certificado_medico.id_empleado = empleado.id_empleado
  4. (SELECT certificado_medico.id, COUNT(*) AS 'cantidad'
  5. FROM inasistencia
  6. INNER JOIN certificado_medico ON inasistencia.id_empleado = certificado_medico.id_empleado
  7. WHERE inasistencia.fecha BETWEEN certificado_medico.fecha_inicio_vigencia AND DATE_ADD(certificado_medico.fecha_inicio_vigencia, INTERVAL(certificado_medico.dias_reposo - 1) day)
  8. GROUP BY certificado_medico.id) AS cantidad_inasistencias
  9. ON cantidad_inasistencias.id_certificado_medico = certificado_medico.id
  10. WHERE dias_reposo > cantidad_inasistencias.cantidad
  11. ORDER BY certificado_medico.fecha_inicio_vigencia ASC

Probé distintas combinaciones de LEFT, RIGHT e INNER en todos los JOINs pero no logro lo que necesito.

Saludos.

Última edición por RabidFish; 05/12/2012 a las 06:33 Razón: Etiquetado incorrecto en código SQL.