intervalo de fechas comprendido en otro intervolo de fechas

09/09/2007 - 17:14 por dgironal | Informe spam
Muy buenas, utilizo Microsoft SQL Sever 2000, y no consigo dar con el
criterio de selección para el siguiente escenario:

intervalo de fechas comprendido en otro intervolo de fechas

Tabla de ejemplo

Id
FechaInicio (yyyymmdd)
FechaFin (yyyymmdd)

(pueden solaparse, repetirse, …)

El usuario indicará los siguientes datos

FechaComienzo (yyyymmdd)
FechaFinalización (yyyymmdd)

La consulta debe seleccionar los DISTINTOS id de la Tabla ejemplo que cumplan:

“Algún día del intervalo solicitado (FechaComiendo y Fecha finalización)
esté dentro de algún intervalo FechaInicio y FechaFin”

Pongo un ejemplo

Id FechaInicio FechaFin
1 25/06/2006 30/06/2006
2 31/12/2006 2/01/2007
3 2/01/2007 14/07/207
4 15/06/2007 17/08/2007
5 03/01/2007 04/01/2007



Desde el 01/01/2007 al 04/01/2007 devuelve los id que :

(01/01/2007 , 02/01/2007 , 03/01/2007 , 04/01/2007) alguno de estos día
caingan dentro de FechaInicio y FechaFin

Devolverá: 2,3 y 5

Es difícil para mi incluso realizar la pregunta al foro espero haberme
explicado, gracias de antemano

Preguntas similare

Leer las respuestas

#11 Alejandro Mesa
09/09/2007 - 22:10 | Informe spam
Hola Carlos,

Esa expresion es para comprobar que un grupo es subconjunto del otro. En
cambio, lo que desea quien posteo, es comprobar si alguna fecha de ese
conjunto esta presente en el otro.

- c1

Fijate en las tres condiciones de c2 que pueden machar.


AMB

"Carlos M. Calvelo" wrote:

On 9 sep, 17:14, dgironal wrote:
> Muy buenas, utilizo Microsoft SQL Sever 2000, y no consigo dar con el
> criterio de selección para el siguiente escenario:
>
> intervalo de fechas comprendido en otro intervolo de fechas
>
> Tabla de ejemplo
>
> Id
> FechaInicio (yyyymmdd)
> FechaFin (yyyymmdd)
>
> (pueden solaparse, repetirse, ...)
>
> El usuario indicará los siguientes datos
>
> FechaComienzo (yyyymmdd)
> FechaFinalización (yyyymmdd)
>
> La consulta debe seleccionar los DISTINTOS id de la Tabla ejemplo que cumplan:
>
> "Algún día del intervalo solicitado (FechaComiendo y Fecha finalización)
> esté dentro de algún intervalo FechaInicio y FechaFin"
>
> Pongo un ejemplo
>
> Id FechaInicio FechaFin
> 1 25/06/2006 30/06/2006
> 2 31/12/2006 2/01/2007
> 3 2/01/2007 14/07/207
> 4 15/06/2007 17/08/2007
> 5 03/01/2007 04/01/2007
>
> Desde el 01/01/2007 al 04/01/2007 devuelve los id que :
>
> (01/01/2007 , 02/01/2007 , 03/01/2007 , 04/01/2007) alguno de estos día
> caingan dentro de FechaInicio y FechaFin
>
> Devolverá: 2,3 y 5
>
> Es difícil para mi incluso realizar la pregunta al foro espero haberme
> explicado, gracias de antemano

Hola,


WHERE FechaInicio <= @FechaFinalizacion AND FechaFin >> @FechaComienzo

Saludos,
Carlos


Respuesta Responder a este mensaje
#12 Carlos M. Calvelo
09/09/2007 - 22:38 | Informe spam
Hola Alejando,

On 9 sep, 22:10, Alejandro Mesa
wrote:
Hola Carlos,

Esa expresion es para comprobar que un grupo es subconjunto del otro.



No. Le vas a tener que echar otra ojeada. :)

En
cambio, lo que desea quien posteo, es comprobar si alguna fecha de ese
conjunto esta presente en el otro.

- c1

Fijate en las tres condiciones de c2 que pueden machar.




La expresión devolvera de los c2 el 2, 3 y 4.
Es decir, todos los períodos que tengan una o mas fechas en común
con el período dado. Que es lo que quiere Dgironal, como dejó
bien claro con su ejemplo.

Saludos,
Carlos
Respuesta Responder a este mensaje
#13 Alejandro Mesa
09/09/2007 - 23:26 | Informe spam
Hola Carlos,

Tienes razon, esa expresion es correcta, comprobando que ambos rangos se
solapan.

AMB


"Carlos M. Calvelo" wrote:

Hola Alejando,

On 9 sep, 22:10, Alejandro Mesa
wrote:
> Hola Carlos,
>
> Esa expresion es para comprobar que un grupo es subconjunto del otro.

No. Le vas a tener que echar otra ojeada. :)

> En
> cambio, lo que desea quien posteo, es comprobar si alguna fecha de ese
> conjunto esta presente en el otro.
>
> - c1
>
> Fijate en las tres condiciones de c2 que pueden machar.
>

La expresión devolvera de los c2 el 2, 3 y 4.
Es decir, todos los períodos que tengan una o mas fechas en común
con el período dado. Que es lo que quiere Dgironal, como dejó
bien claro con su ejemplo.

Saludos,
Carlos


Respuesta Responder a este mensaje
#14 dgironal
10/09/2007 - 11:34 | Informe spam
Sólo decir GRACIAS !!!, gracias a todos y cada uno que se han interesado en
mi duda.

Me quedo con:

comprobar si alguna (ALGUNA) fecha de un conjunto esta presente en el otro.

- c1


WHERE FechaInicio <= @FechaFinalizacion AND FechaFin >= @FechaComienzo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida