Thanks, but now I'm getting a different error : -
Msg 8115, Level 16, State 2, Line 5
Arithmetic overflow error converting expression to data type float.
my actual query is : -
declare @radius decimal(18,2)
DECLARE @radians float
SELECT @radians = 57.295779513082323 --> 180/PI
SELECT @radius=5
;with cteDistCalc
as(
SELECT t1.*,
DistanceInMiles = 3963.0*acos(sin(t1.Latitude/(@radians)) * sin(t2.Latitude/(57.295779513082323))
+ cos(t1.Latitude/(@radians)) * cos(t2.Latitude/(@radians)) * cos(t2.Longitude/(@radians) - t1.Longitude/(@radians)))
FROM dbo.postcodes t1
JOIN dbo.postcodes t2
on t1.Latitude between t2.Latitude - @radius and t2.Latitude + @radius
and t1.Longitude between t2.Longitude - @radius and t2.Longitude + @radius
where t1.postcode='SM4 6DX'
)
select * from cteDistCalc WHERE DistanceInMiles < @radius
ORDER BY DistanceInMiles
[/code}