SELECT A.P_LOCALE_ID, A.P_LOCALE_COUNT, B.DISPLAY_NAME, B.X_COORD, B.Y_COORD
FROM
(SELECT P_LOCALE_ID, COUNT(P_LOCALE_ID) AS P_LOCALE_COUNT
FROM
(SELECT P_LOCALE_ID, X_COORD, Y_COORD, REFERENCE,
(6369*3.141592653589793238462643383279502884197169399375105820974944592307 * sqrt((Y_COORD-$latitude) * (Y_COORD-$latitude) + cos(Y_COORD/57.29578) * cos($latitude/57.29578) * (X_COORD-$longitude) * (X_COORD-$longitude)) / 180)
AS distancexy FROM P_PROPERTIES_TOM
WHERE X_COORD IS NOT NULL AND
(6369*3.141592653589793238462643383279502884197169399375105820974944592307 * sqrt((Y_COORD-$latitude) * (Y_COORD-$latitude) + cos(Y_COORD/57.29578) * cos($latitude/57.29578) * (X_COORD-$longitude) * (X_COORD-$longitude)) / 180) < $radius ORDER BY distancexy ASC)
GROUP BY P_LOCALE_ID)
A
LEFT JOIN
P_LOCALE_TOM B
ON A.P_LOCALE_ID = B.ID