私は、この日付と価格の束を持つ表があります。SQLは特性関数を単純化しますか?またはPIVOTテーブル?
ルーム名、価格、Bookdateなど
そして、私はそうのようにそれを変換することができます(基本的に列を反転させた)
SELECT availables.name, rooms.id,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 0, availables.price, '')) AS day1,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 1, availables.price, '')) AS day2,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 2, availables.price, '')) AS day3,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 3, availables.price, '')) AS day4,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 4, availables.price, '')) AS day5,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 5, availables.price, '')) AS day6,
MAX(IF(to_days(availables.bookdate) - to_days('2009-06-13') = 6, availables.price, '')) AS day7,
AVG(availables.price),SUM(availables.price)
FROM `availables`
INNER JOIN rooms
ON availables.room_id=rooms.id
WHERE availables.room_id = '18382'
GROUP BY availables.name
これは完璧に動作し、これを生成します。
name id day1 day2 day3 day4 day5 day6 day7 AVG(availables.price) SUM(availables.price)
Bed 18382 23.00 21.00 21.00 21.00 21.00 21.00 21.571429 151.00
しかし、私は日数を知らないので、私はそれがどのように簡略化することができますか?それは1か7かもしれませんか?何か案は?
データベースはmysql – holden