creo que lo que necesitas es idéntico a este
hilo.
Lo que pedía shoulder era ver el ausentismo en un período.
Parecido a lo que preguntas tu.
Esta fue mi respuesta (Firebird):
Código SQL
[-]
select persona,:desde,:hasta from tabla_ausentismo
where
(fecha_desde <= :desde) and
(fecha_hasta >= :hasta)
union
select persona,fecha_desde,:hasta from tabla_ausentismo
where
(fecha_desde >= :desde) and
(fecha_desde <= :hasta) and
(fecha_hasta >= :hasta)
union
select persona,:desde,fecha_hasta from tabla_ausentismo
where
(fecha_desde <= :desde) and
(fecha_hasta >= :desde) and
(fecha_hasta <= :hasta)
union
select persona,fecha_desde,fecha_hasta from tabla_ausentismo
where
(fecha_desde >= :desde) and
(fecha_desde <= :hasta) and
(fecha_hasta >= :desde) and
(fecha_hasta <= :hasta)