Я использовал что-то вроде этого:
Я использую mysql, он поддерживает PIVOT?
SELECT
name, room_id,
MAX(IF(to_days(bookdate) - to_days('2009-06-24') = 0, price, '')) AS Day1,
MAX(IF(to_days(bookdate) - to_days('2009-06-24') = 1, price, '')) AS Day2,
MAX(IF(to_days(bookdate) - to_days('2009-06-24') = 2, price, '')) AS Day3,
MAX(IF(to_days(bookdate) - to_days('2009-06-24') = 3, price, '')) AS Day4,
MAX(IF(to_days(bookdate) - to_days('2009-06-24') = 4, price, '')) AS Day5,
MAX(IF(to_days(bookdate) - to_days('2009-06-24') = 5, price, '')) AS Day6,
MAX(IF(to_days(bookdate) - to_days('2009-06-24') = 6, price, '')) AS Day7, spots
FROM `availables`
GROUP BY name