> create cursor Coordinates ; > ( co_pk I, ; > co_city c(40), ; > co_latitude b(16), ; > co_longitude b(16), ; > co_x b(16), ; > co_y b(16), ; > co_z b(16) ; > ) > > insert into Coordinates ; > ( co_pk, co_city, co_latitude, co_longitude) ; > values ; > (1, 'Here', 47.7795, -65.7191 ) > > insert into Coordinates ; > ( co_pk, co_city, co_latitude, co_longitude) ; > values ; > (2, 'There', 47.5993, -65.6506 ) > > > update Coordinates ; > set co_x = cos(co_latitude*PI()/180) * cos(co_longitude*PI()/180), ; > co_y = cos(co_latitude*PI()/180) * sin(co_longitude*PI()/180), ; > co_z = sin(co_latitude*PI()/180) > > > CenterLat =47.7795 > CenterLon = -65.7191 > SearchDistance = 1000 > > select * ; > from Coordinates ; > where ( co_latitude between CenterLat - (1/111 * SearchDistance) and CenterLat + (1/111 * SearchDistance) ) ; > and ( co_longitude between CenterLon - (1/111 * SearchDistance) and CenterLon + (1/111 * SearchDistance) ) >There must be something I am missing here. This is as simple as it gets. I still get only one result:
declare @CenterLat float=47.7795 declare @CenterLon float=-65.7191 declare @SearchDistance float=1000 select * from Test where(latitude between @CenterLat - (1/111 * @SearchDistance) and @CenterLat + (1/111 * @SearchDistance)) and (longitude between @CenterLon - (1/111 * @SearchDistance) and @CenterLon + (1/111 * @SearchDistance))