Problemas con una consulta
Hola, quiero hacer una consulta a una tabla donde tengo un campo llamado "Longitud" donde estan insertadas un gran numero de longitudes, y quiero que me arroge la longitud mas cercana a la que yo le proporsione. por ejemplo si yo le doy la longitud "95.87" y en la tabla hay longitudes: "95.45" , "95.91" , "95.99", etc. Lo correcto seria que me arrojara la "95.91".
Agradeceria la ayuda, estaba pensando hacer algun algoritmo desde código pero quiero saber si hay alguna función como MAX, MIN, etc.
Agradeceria la ayuda, estaba pensando hacer algun algoritmo desde código pero quiero saber si hay alguna función como MAX, MIN, etc.
Ramon,
Tu pregunta es muy interesante y me di a la tarea de buscar una respuesta para usted.
Sin embargo en el camino me encontre con varias preguntas para usted.
Primero que tipo de base de datos estas usando?
Si es Oracle hay una funcion que se llama greatest() que la puedes usar para hacer lo que necesitas.
si es MS-SQL entonces esta este post en donde Arnei Rowland escribio una funcion que simula el funcionamiento de la funcion anterio. Esta muy bueno dale un vistaso y me avisa si ocupas ayuda.
http://social.msdn.microsoft.com/forums/en-US/transactsql/thread/d5583d1e-df78-4552-80e9-c63cfe0eb0c3
Y si necesitas Hosting o asistencia technica visitanos en
http://www.crystaltech.com?id=000231
Carlos Co
Tu pregunta es muy interesante y me di a la tarea de buscar una respuesta para usted.
Sin embargo en el camino me encontre con varias preguntas para usted.
Primero que tipo de base de datos estas usando?
Si es Oracle hay una funcion que se llama greatest() que la puedes usar para hacer lo que necesitas.
si es MS-SQL entonces esta este post en donde Arnei Rowland escribio una funcion que simula el funcionamiento de la funcion anterio. Esta muy bueno dale un vistaso y me avisa si ocupas ayuda.
http://social.msdn.microsoft.com/forums/en-US/transactsql/thread/d5583d1e-df78-4552-80e9-c63cfe0eb0c3
Y si necesitas Hosting o asistencia technica visitanos en
http://www.crystaltech.com?id=000231
Carlos Co
Hola Carlos,
Muchas gracias por tu respuesta, la verdad no habÃa vuelto entrar porque entre algunas veces y no habÃan contestado y como en otros foros ya habÃa preguntado eso y nada.
Bueno mira estoy usando SQL Server 2008, y eso aun no lo resuelvo, estuve mientras con otras cosas, voy a echarle un vistazo a lo que me proporcionaste veré si puedo tomar algo de ahÃ, sin embargo si hay algo que puedas decirme para SQL Server te lo agradecerÃa.
Muchas gracias por tu respuesta, la verdad no habÃa vuelto entrar porque entre algunas veces y no habÃan contestado y como en otros foros ya habÃa preguntado eso y nada.
Bueno mira estoy usando SQL Server 2008, y eso aun no lo resuelvo, estuve mientras con otras cosas, voy a echarle un vistazo a lo que me proporcionaste veré si puedo tomar algo de ahÃ, sin embargo si hay algo que puedas decirme para SQL Server te lo agradecerÃa.
Ho ho,
Disculpa, confundà MS-SQL pensé que habÃas puesto My SQL.
Le echare un vistazo.
Disculpa, confundà MS-SQL pensé que habÃas puesto My SQL.
Le echare un vistazo.
Trata con este query que preparé:
select case when abs(menor)
(
select 95.87-(select max(longi) from longitudes where longi<='95.87') menor,
95.87-(select min(longi) from longitudes where longi>='95.87') mayor
) x
Reemplazas el 95.87 por el valor que deseas encontrarle el más cercano.
select case when abs(menor)
select 95.87-(select max(longi) from longitudes where longi<='95.87') menor,
95.87-(select min(longi) from longitudes where longi>='95.87') mayor
) x
Reemplazas el 95.87 por el valor que deseas encontrarle el más cercano.
por alguna razon me está modificando la primera linea... seria
select case when abs(menor) < abs(mayor) then 95.87-abs(menor) else 95.87+abs(mayor) end mascerca from
select case when abs(menor) < abs(mayor) then 95.87-abs(menor) else 95.87+abs(mayor) end mascerca from