Salve a tutti, dovrei ordinare i risultati estratti da un DB mysql in maniera un po' particolare e non vedo una strada semplice per la cosa.

Ho in una tabella mysql chiamata "CLIENTI" la seguente struttura.
Screenshot 2014-08-31 09.34.17.png
Mentre ho altre due tabelle che si chiamano EFFETTUA e ACQUISTA con la struttura sottostante:
EFFETTUA:
Screenshot 2014-08-31 09.33.13.png
Acquista:
Screenshot 2014-08-31 09.31.52.png

Il problema è quello di estrarre una lista di ID dei clienti ordinandoli in maniera decrescente in base a quello che spendono tra due date considerate (una sorta di WHERE data BETWEEN 'data1' AND 'data2').
Come è possibile tale risultato?
Seguendo la strada della union
Codice PHP:
SELECT id_cliente,costo FROM acquisto WHERE data BETWEEN 'data1' AND 'data2'
UNION
SELECT id_cliente
,costo FROM effettua WHERE data BETWEEN 'data1' AND 'data2' 
Potrei ottenere il totale di un singolo cliente ma non un array ordinato.
Come potrei impostare un join per tale risultato?
Grazie