Condición 1: para el caso de los datos, que no tenga definidos una mecha de baja, se me deben mostrar y si la tiene definida se tiene que ocultar. En esta condición el rango de fecha siempre va a hacer mayor la fecha de baja.
Ejemplo: si el rango de fecha es 2020-04-30 al 2020-05-13 y la fecha de baja fue el 2020-04-30 me tiene que mostrar todos los demás datos excepto el que tiene la fecha de baja definida.
Condición 2: para este caso, los datos que tengan definido fecha de baja y el rango de fecha sea menor a la misma, se tienen que mostrar todos los datos.
Ejemplo: si el rango de fecha es 2020-01-29 al 2020-02-12 y la fecha de baja fue el 2020-04-30 me tiene que mostrar todos los datos aunque tenga la condición de baja.
A continuación le dejo la consulta hasta donde lo tengo para ver si me pueden ayudar.
Gracias.
Código:
SELECT empleado.id_empl, `empleado`.`baja`, empleado.referencia, CONCAT(empleado.apellidos,' ',empleado.nombre) AS nombre,tipo_asist.id, tipo_asist.nombre_cor,
(SELECT COUNT(id_tipoasist) FROM asistencia WHERE asistencia.id_empl = empleado.id_empl AND asistencia.fecha_ent >= '2020-04-30' AND asistencia.fecha_ent <= '2020-05-13' AND asistencia.id_tipoasist = tipo_asist.id ) AS presente
FROM asistencia
INNER JOIN empleado ON asistencia.id_empl = empleado.id_empl
INNER JOIN tipo_asist ON asistencia.id_tipoasist = tipo_asist.id
WHERE`empleado`.`fecha_baja` > '2020-05-13' AND empleado.id_empresa = '6' AND fecha_ent >= '2020-04-30' AND fecha_ent <= '2020-05-13' GROUP BY empleado.id_empl, tipo_asist.id ORDER BY referencia ASC