Como traer los datos distintos a una fecha.

Iniciado por yoelrodguez, 20 Mayo 2020, 01:45 AM

0 Miembros y 1 Visitante están viendo este tema.

yoelrodguez

Hola a todos, tengo la siguiente situación: Estoy realizando una consulta en mysql, donde necesito traer todos los datos que no tenga definido una fecha de baja y si el rango de fecha, es inferior a la fecha de baja, me muestre los datos de los que estén dado de baja.

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.

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