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