Salve a tutti, ho la seguente query che mi preleva dei dati da una tabella in base alla distanza da un punto (vengono fornite le coordinate e viene calcolata la distanza).

Codice:
SELECT *, 3956 * 2 * 
          ASIN(SQRT( POWER(SIN(($origLat - abs(latitudine))*pi()/180/2),2)
          +COS($origLat*pi()/180 )*COS(abs(latitudine)*pi()/180)
          *POWER(SIN(($origLon-longitudine)*pi()/180/2),2))) 
          as distance FROM tabella1 WHERE NOW() <= data_fine and longitudine between ($origLon-$dist/abs(cos(radians($origLat))*69)) 
          and ($origLon+$dist/abs(cos(radians($origLat))*69)) 
          and latitudine between ($origLat-($dist/69)) 
          and ($origLat+($dist/69)) 
          having distance < $dist ORDER BY distance limit 100
La tabella ha due attributi (data_inizio e data_fine che non è rilevante) per ogni elemento e vorrei un ordinamento fatto in questo modo:

ELEMENTI | DATA_INIZIO| DATA_ FINE | DISTANZA (risultato della query sopra)|
elemento1 |02-06-2015 |-----------------| 4km|
elemento2 | 03-06-2015|-----------------| 3km|
elemento3 | 01-06-2015| ----------------| 10km|

la query dovrebbe ordinarmi prima in base alla distanza in suddivisioni di 5km e all'interno di esse per data, cioè l'output dovrebbe essere:
(Elementi entro i 5km per data)
elemento2
elemento1
(Elementi entro i 10km per data)
elemento3
E così via..

Si può fare?