>>DECLARE @Latitude Float >>DECLARE @Latitude2 Float >>DECLARE @Longitude Float >>DECLARE @Longitude2 Float >>DECLARE @Latitude3 Float >>DECLARE @Latitude4 Float >>DECLARE @Longitude3 Float >>DECLARE @Latitude5 Float >>DECLARE @Latitude6 Float >>DECLARE @Longitude4 Float >>DECLARE @Latitude7 Float >>DECLARE @Latitude8 Float >>DECLARE @Longitude5 Float >> >>SET @Latitude=47.7795 >>SET @Latitude2=47.7795 >>SET @Longitude=-65.7191 >>SET @Longitude2=-65.7191 >>SET @Latitude3=47.7795 >>SET @Latitude4=47.7795 >>SET @Longitude3=-65.7191 >>SET @Latitude5=47.7795 >>SET @Latitude6=47.7795 >>SET @Longitude4=-65.7191 >>SET @Latitude7=47.7795 >>SET @Latitude8=47.7795 >>SET @Longitude5=-65.7191 >> >>SELECT Client.Numero FROM Client >> WHERE (Client.Latitude>=@Latitude-250/111.0 AND Client.Latitude<=@Latitude2+250/111.0) AND >>(Client.Longitude>=@Longitude-250/111.0 AND Client.Longitude<=@Longitude2+250/111.0) AND >> 3958.75586574*ACOS( >> CASE WHEN SIN(@Latitude3/57.2957795130823)*SIN(Client.Latitude/57.2957795130823)+ >> COS(@Latitude4/57.2957795130823)*COS(Client.Latitude/57.2957795130823)* >> COS(Client.Longitude/57.2957795130823-@Longitude3/57.2957795130823)<-1 >> THEN -1 >> WHEN SIN(@Latitude5/57.2957795130823)*SIN(Client.Latitude/57.2957795130823)+ >> COS(@Latitude6/57.2957795130823)*COS(Client.Latitude/57.2957795130823)* >> COS(Client.Longitude/57.2957795130823-@Longitude4/57.2957795130823)>1 >> THEN 1 >> ELSE SIN(@Latitude7/57.2957795130823)*SIN(Client.Latitude/57.2957795130823)+ >> COS(@Latitude8/57.2957795130823)*COS(Client.Latitude/57.2957795130823)* >> COS(Client.Longitude/57.2957795130823-@Longitude5/57.2957795130823) >> END)<=250 >>>
>;with cte as (SELECT Client.Numero, 3958.75586574*ACOS( > CASE WHEN SIN(@Latitude3/57.2957795130823)*SIN(Client.Latitude/57.2957795130823)+ > COS(@Latitude4/57.2957795130823)*COS(Client.Latitude/57.2957795130823)* > COS(Client.Longitude/57.2957795130823-@Longitude3/57.2957795130823)<-1 > THEN -1 > WHEN SIN(@Latitude5/57.2957795130823)*SIN(Client.Latitude/57.2957795130823)+ > COS(@Latitude6/57.2957795130823)*COS(Client.Latitude/57.2957795130823)* > COS(Client.Longitude/57.2957795130823-@Longitude4/57.2957795130823)>1 > THEN 1 > ELSE SIN(@Latitude7/57.2957795130823)*SIN(Client.Latitude/57.2957795130823)+ > COS(@Latitude8/57.2957795130823)*COS(Client.Latitude/57.2957795130823)* > COS(Client.Longitude/57.2957795130823-@Longitude5/57.2957795130823) > END) as Distance > >FROM dbo.Client > > > WHERE (Client.Latitude>=@Latitude-250/111.0 AND Client.Latitude<=@Latitude2+250/111.0) AND >(Client.Longitude>=@Longitude-250/111.0 AND Client.Longitude<=@Longitude2+250/111.0) ) > >select * from cte where Distance <=250I see 250 too many times. The 250 is in both where clauses