Salve a tutti,
tramite la seguente query vorrei prelevare per ogni hotel una sola camera con il suo relativo prezzo e sconto:
codice:
SELECT hotels.hotel_id, hotels.hotel_name, camere.id_camera,camere.numero_camere-COALESCE(booking_check_avilability.total_room+booking_check_avilability.blocked_inventory,0) AS disponibilità,
coalesce(hotel_prezzo_stagione.prezzo_stagione,hotel_prezzo_camera.prezzo_camera)-(coalesce(hotel_prezzo_stagione.prezzo_stagione,hotel_prezzo_camera.prezzo_camera)
*round(coalesce(promo.promo_sconto,0)/100.0,2)) as prezzoscontatofinale,
coalesce(hotel_prezzo_stagione.prezzo_stagione,hotel_prezzo_camera.prezzo_camera)*round(coalesce(promo.promo_sconto,0)/100.0,2) as scontoineuro,
coalesce(hotel_prezzo_stagione.prezzo_stagione,hotel_prezzo_camera.prezzo_camera) as prezzodascontare
FROM hotels
LEFT JOIN hotel_prezzo_camera ON (hotel_prezzo_camera.numero_ospiti='2')
LEFT JOIN hotel_prezzo_stagione ON (hotel_prezzo_camera.id_camera=hotel_prezzo_stagione.id_camera)
AND (prezzo_dal>='2015-06-25') AND (prezzo_al<='2015-06-26') AND (hotel_prezzo_stagione.numero_ospiti='2')
LEFT JOIN promo ON (hotel_prezzo_camera.id_camera=promo.id_camera)
AND (promo_dal>='2015-06-25') AND (promo_al<='2015-06-26') AND (promo.numero_ospiti='2')
LEFT JOIN booking_check_avilability
ON (hotel_prezzo_camera.id_camera = booking_check_avilability.room_type_id)
AND (booking_check_avilability.check_in_date >= '2015-06-25') AND (booking_check_avilability.check_out_date <= '2015-06-26')
LEFT JOIN camere ON (hotel_prezzo_camera.id_camera=camere.id_camera) AND (camere.numero_ospiti >= '2')
WHERE hotels.hotel_city = 'Adrano' AND hotels.hotel_id = camere.hotel_id
AND camere.numero_camere-COALESCE(booking_check_avilability.total_room+booking_check_avilability.blocked_inventory,0) >= '1'
In questo momento mi preleva tutte le camere, quindi mi duplica l'hotel, ho provato a raggruppare per hotel_id, gli hotel diventano 3 correttamente però le camere che seleziona le prende per ordine di camera io vorrei prendere la camera con il prezzo più basso.
Spero di essermi spiegato bene.
Grazie