Salve ragazzi,
ho un motore di ricerca interno al sito che dovrebbe tirarmi fuori il prezzo piu' basso delle varie strutture alberghiere in base alla ricerca che fa l'utente.

Ora sto notando che per un hotel questo non succede e mi sa che il problema potrebbe essere anche per altri.

In pratica questo hotel ha i seguenti prezzi:

2 notti: 141.00 € (70.50 € a notte)
3 notti: 198.00 € (66.00 € a notte)
7 notti: 417.00 € (59.57 € a notte)

Se faccio una ricerca di 7 notti esce il prezzo di 493.50 € ma dovrebbe uscire 417.00 €

Non capisco dove sbaglio
Questa è la query che sto facendo

Codice PHP:
$query_offerte="SELECT id_offerta, titolo, DATE_FORMAT(valida_da, '%d/%m/%Y') AS valida_da_ita, DATE_FORMAT(valida_fino, '%d/%m/%Y') AS valida_fino_ita, minimo_notti, prezzo, prezzo_come, trattamento, tipo_camera, id_albergo, bimbi_gratis, pacchetto_benessere, incluso, supplementi_riduzioni FROM prezzi WHERE cancellata=\"0\" and '$arrivo' between DATE_ADD(valida_da, INTERVAL -2 DAY) AND valida_fino  ";
$query_offerte .= " and (minimo_notti <= $durata) AND DATE_ADD(STR_TO_DATE('$arrivo', '%Y-%m-%d'), INTERVAL +$durata DAY) <= valida_fino group by id_albergo 
Poi faccio l'ordinamento per prezzo.

Cosa c'è che non va sul ragionamento che vi ho detto e sulla query che sto eseguendo?
Grazie