PDA

Ver la Versión Completa : Consulta para encontrar el valor más cercano


Faust
28-07-2007, 23:02:00
Saludos foreros.

Esta consulta me funciona en Access, pero no en SQL Server. (Por obvias razones)


SELECT TOP 1 * FROM dbo_Pref
ORDER BY SQR((lfLongitude - -92.89833)^2 + (lfLatitude - 18.02)^2)



La tabla dbo_Pref contiene una colección de puntos importantes con un nombre y su ubicación mediante su longitud y latitud (los campos lfLongitude y lfLatitude respectivamente que son del tipo float), este ejemplo de consulta busca el punto más cercano a la longitud -92.89833 y latitud 18.02.

En Access se pueden utilizar las funciones SQR y el operador ^ para elevar a cierta potencia, pero en SQL Server ¿cómo se hace este tipo de consulta?, ¿cuál sería el equivalente a esta consulta pero en SQL Server?

Muchas gracias desde ya.

Faust
01-08-2007, 05:15:58
Perdonar por mi ignorancia...

Despues de buscar un poco, dí con un manual de SQL Server y encontré las funciones aritméticas.

Este es el equivalente en SQL Server:


SELECT TOP 1 * FROM Pref
ORDER BY SQRT(POWER(lfLongitude - -92.89833, 2) + POWER(lfLatitude - 18.02, 2))


POWER para elevar a cierta potencia --- POWER(Que_elevar, Que_Potencia)
SQRT para extraer la raíz cuadrada --- SQRT(Numero)