SQL - superposicion de rangos

 
Vista:

superposicion de rangos

Publicado por andreafuhr (1 intervención) el 06/03/2009 19:50:04
Hola gente linda!
Estoy segura que muchos saben mas que yo y entre ellos debe haber alguien que pueda responder a mi pregunta.
Esta es la situacion:

Tengo una tabla de rangos, donde por cada registro tengo
CALLEID
DESDE
HASTA

Por ejemplo:

CALLEID DESDE HASTA
1 1 100
1 101 200
1 201 300
1 199 350

Si miramos el ultimo rango se superpone con el anteultimo porque el DESDE es menor al HASTA del rango anterior.
No se me ocurre como realizar una consulta que localice aquellos DESDE menores a los HASTA pero que el HASTA sea de otro registro y no de la misma fila (es logico que los DESDE sean menores a los HASTA de la misma fila).

Bueno, les dejo mi inquietud y agradezco la ayuda.
SALUDOS!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Respuesta...

Publicado por Leopoldo Taylhardat (93 intervenciones) el 07/03/2009 13:50:48
No probé, pero creo que sirve así...

select tabla_x.columan_x where ((valor_menor between tabla_x.desde and tabla_x.hasta) and (valor_mayor between tabla_x.desde and tabla_x.hasta))
...
asi debe localizar cuales son los registros que esten dentro de los rangos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:superposicion de rangos

Publicado por german (1 intervención) el 13/07/2009 20:19:14
HOla, si entiendo bien tu problema, estas queriendo determinar que rangos se superponen, te paso la consulta que deberias hacer para este caso

select *
from rangos r1,
rangos r2
where r1.rowid != r2.rowid
and R1.DESDE < R2.DESDE
and R1.HASTA > R2.DESDE

Lo probé con la casuistica que presentas y el resultado esteste

ID DESDE HASTA ID_1 DESDE_1 HASTA_1

1 199 350 1 201 300
1 101 200 1 199 350

Esos serian lso rango que se estan superponiendo,
espero te haya servido

un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar