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

#6 dgironal
09/09/2007 - 18:34 | Informe spam
Hablemos en términos matemáticos:

Intervalo de fechas:
[fi1,ff1]
[fi2,ff2]
[fi3,ff3]
...
[fiI,ffI]
...
[fi_n, ff_n]

Problema: dado un intervalo de fechas [Inicio,Fin] devolver los registros
anteriores que cumplan que alguno de los días comprendidos en [Inicio,Fin]
pertenezcan algún intervalo de los registros anteriores:

dia_j pertenece a [Inicio,Fin]

¿¿¿¿¿¿ dia_j pertenece a algún [fiI,ffI] ?????

iterear para cada dia que pertenezca a [Inicio,fin]
Respuesta Responder a este mensaje
#7 dgironal
09/09/2007 - 18:40 | Informe spam
Haciéndolo mal es "sencillo":

TablaEjemplo

id
FechaInicio
FechaFin
-

Consulta:

dia_j pertenece a [Inicio,Fin]

PARA CADA dia_j en [Inicio,Fin] relaizar la consulta con el siguiente criterio

dia_j BEETWEEN FechaInicio AND FechaFin

¿Cómo hacerlo sin teber que iterar?

(dia1,dia2,..., dia_i, , dia_n) BEETWEN FechaInicio AND FechaFIn
Respuesta Responder a este mensaje
#8 dgironal
09/09/2007 - 18:44 | Informe spam
Escribistes:

select suscampos FROM sutabla
where campofecha >='20070101' and campofecha < '20070105'

QUIZÁS QUERÍAS DECIR

select suscampos FROM sutabla
where CampoFechaInicio >='20070101' and CampoFechaFin <= '20070105'

¿Funciona?
Respuesta Responder a este mensaje
#9 Alejandro Mesa
09/09/2007 - 19:42 | Informe spam
dgironal,

Te seria muy util usar una tabla calendario.

select distinct
t.[id]
from
dbo.tabla_ejemplo as t1
inner join
(
select
c.fecha
from
dbo.calendario as c
where
c.fecha >= @FechaComienzo
and c.fecha <= @FechaFinalización
) as t2
on t2.fecha between t1.FechaInicio and t1.FechaFin
go


Why should I consider using an auxiliary calendar table?
http://sqlserver2000.databases.aspf...table.html


AMB


"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

Respuesta Responder a este mensaje
#10 Carlos M. Calvelo
09/09/2007 - 20:03 | Informe spam
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
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida