- La relación tiene atributos de fecha inicio y fin (fecha_inicio_relación y fecha_fin_relación).
- La selección se quiere hacer según un rango fecha inicio y fin (fecha_inicio_selección y fecha_fin_selección), seleccionando todas en las que los segmentos se toquen o se superpongan (ver imagen):
fecha_inicio_relación fecha_fin_relación
|——————————————|
fecha_inicio_selección fecha_fin_selección
|——————————————|
Query:
select * from relación where (fecha_inicio_relación <=
fecha_inicio_selección and fecha_fin_relación >= fecha_inicio_selección or fecha_inicio_relación <=
fecha_fin_selección and fecha_fin_relación >=
fecha_fin_selección or fecha_inicio_relación >=
fecha_inicio_selección and fecha_fin_relación <= fecha_fin_selección or fecha_inicio_relación <=
fecha_inicio_selección and fecha_fin_relación >= fecha_fin_selección)
-- validaciones de
consistencia
and fecha_inicio_relación <=
fecha_fin_relación and fecha_inicio_selección <=
fecha_fin_selección
No hay comentarios:
Publicar un comentario