Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/02/2004, 05:25
ideafix
 
Fecha de Ingreso: abril-2002
Ubicación: La Comarca
Mensajes: 192
Antigüedad: 23 años
Puntos: 0
Problema de planteamiento

Hola.

Si entendi lo que pides (si no, me corriges) la situación que tienes es la siguiente:

Intervalo que se quiere consultar:

de Fecha A a Fecha B
[ 11-FEB-2004 a 16-FEB-2004 ]

Intervalos que tienes para consultar:

de Fecha Ci a Fecha Di
[ 11-FEB-2004 a 11-FEB-2004 ]
[ 12-FEB-2004 a 15-FEB-2004 ]
[ 10-FEB-2004 a 11-FEB-2004 ]
[ 01-FEB-2004 a 17-FEB-2004 ]
[ 16-FEB-2004 a 28-FEB-2004 ]
etc...

El caso es el siguiente

Para un 'i' dado, cumplen tu condicion los siguientes casos:

1) Ci >= A y Di<= B
[ 11-FEB-2004 a 16-FEB-2004 ]

2) Ci <= A y Di >=A
[ 11-FEB-2004 a 11-FEB-2004 ]
[ 01-FEB-2004 a 17-FEB-2004 ]

3) Ci <=B y Di>=B
[ 16-FEB-2004 a 28-FEB-2004 ]

Hasta aqui, todo correcto.

Como trasladar esto al SQL

WHERE ((1) OR (2) OR (3))

(1) = ((FechaC >= FechaA) AND (FechaD <= FechaB))
(2) = ((FechaC <= FechaA) AND (FechaD >= FechaA))
(3) = ((FechaC <= FechaB) AND (FechaD >= FechaB))

Espero que te haya servido. Si tienes alguna duda, comentalo en el foro.

Saludos y suerte con el trabajo.

Ideafix.
__________________
Aus Liebe zu einem Sterblichen muss Elronds Tochter Arwen Ihr elbisches Erbe aufgeben und für immer auf die Reise zu den unsterblichen Ländern verzichten.