Después de mucho cabilar sobre el tema he llegado a la siguiente consulta:
Código MySQL:
Ver original tb_cuadrante2015 . IdFECHA ,
tb_personal . IdPERSONAL ,
tb_personal . TURNO ,
tb_personal . NOMBRE ,
tb_personal . APELLIDOS ,
tb_vacaciones1 . EMPIEZA1 ,
tb_vacaciones1 . TERMINA1 ,
tb_vacaciones2 . EMPIEZA2 ,
tb_vacaciones2 . TERMINA2 ,
tb_personal . ESTADO1 ,
CASE tb_personal. VACACIONES1
WHEN tb_cuadrante2015. EMPIEZA
>= tb_vacaciones1. EMPIEZA1
AND tb_cuadrante2015. EMPIEZA
<= tb_vacaciones1. TERMINA1
THEN 'VACACIONES' CASE tb_personal. VACACIONES2
WHEN tb_cuadrante2015. EMPIEZA
>= tb_vacaciones2. EMPIEZA2
AND tb_cuadrante2015. EMPIEZA
<= tb_vacaciones2. TERMINA2
THEN 'VACACIONES' bd_pruebas . tb_vacaciones1
ON ( tb_vacaciones1 . IdVACACIONES1
= tb_personal . VACACIONES1
) ON ( tb_vacaciones2 . IdVACACIONES2
= tb_personal . VACACIONES2
) ON ( tb_cuadrante2015 . TURNO
= tb_personal . TURNO
);
El problema es que funciona bien a medias o menos, me explico:
Efectivamente esta consulta me genera un campo en el que sí se cumplen las condiciones, es decir, aparece la palabra 'VACACIONES', pero el problema es que solo se cumple en el primer CASE y solo con los criterios del primer registro de la tabla 'tb_vacaciones1' o sea el primer turno de vacaciones de los 9 que hay que cada tabla 'tb_vacaciones1' y 'tb_vacaciones2'
Código SQL:
Ver originalIdVACACIONES1 INT(2) UNSIGNED ZEROFILL NOT NULL,
EMPIEZA1 DATE DEFAULT NULL,
TERMINA1 DATE DEFAULT NULL,
DIA_A1 DATE DEFAULT NULL,
PRIMARY KEY ( IdVACACIONES1 )
Por mucho que le doy vueltas no encuentro el porqué tan solo trabaja con el primer registro de la tabla 'tb_vacaciones1' y obvie todos los demás. Con los datos que doy alguien podría encontrar el fallo?