Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Registros cercanos

Estas en el tema de Registros cercanos en el foro de Bases de Datos General en Foros del Web. Estoy buscando la manera de realizar en una sola consulta lo siguiente... con estos datos por ejemplo: Campo1, Campo2, Campo3 1 ------------ a -------- 100 ...
  #1 (permalink)  
Antiguo 02/12/2007, 11:11
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
Pregunta Registros cercanos

Estoy buscando la manera de realizar en una sola consulta lo siguiente... con estos datos por ejemplo:

Campo1, Campo2, Campo3
1 ------------ a -------- 100
2 ------------ b -------- 150
3 ------------ c -------- 200


Si el usuario introduce para el Campo3 el valor 120 devolver el registro 1 y 2
Si el usuario introduce para el Campo3 el valor 150 devolver el registro 2 y 3
etc...

Es posible hacer esto con alguna instrucción SQL en lugar de ejecutar 2 consultas???

Un saludoooooo
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #2 (permalink)  
Antiguo 03/12/2007, 04:26
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: Registros cercanos

Hola,

cual es el criterio de filtrado?
porque en el primer caso pides que devuelva un registro con valor menor que 120 y otro con valor mayor que 120
en el segundo caso quieres que devuelva un registro = 150 y otro > 150
...
Siempre quieres que devuelva solo 2 registros?

salu2!
  #3 (permalink)  
Antiguo 03/12/2007, 13:04
Avatar de sanfermin  
Fecha de Ingreso: diciembre-2001
Mensajes: 601
Antigüedad: 22 años, 4 meses
Puntos: 2
Re: Registros cercanos

Eso es, solo debe devolver los 2 registros entre los que se encuentra el valor...

Hay otra solución que no sea utilizar 2 sentencias SELECT con UNION?

Un saludo
__________________
MainMind.com
La blasfemia es el único lenguaje que de verdad conocen todos los programadores
  #4 (permalink)  
Antiguo 04/12/2007, 03:37
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 2 meses
Puntos: 13
Re: Registros cercanos

siguiendo el criterio de sacar el menor o igual y el mayor, esto es para postgres no se si en tu BD se utiliza igual limit.

(
select *
from tabla
where campo3 <= valor
order by campo3 desc
limit 1
)
union
(
select *
from tabla
where campo3 > valor
order by campo3 asc
limit 1
)

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:58.