0
有谁知道使用activerecord构建数据透视表的方法,这将远程DB中立?我试图避免使用find_by_sql和数据库特定查询,但对于数据透视表或交叉表查询,我不知道如何以不特定说MySQL的方式来完成此操作。 IE mySQL find_by_sql在postgresql数据库中断开。rails db中立数据透视表或交叉表
我发现http://crosstab.rubyforge.org/这个晦涩的crosstab创业板可能工作,但我想知道如果任何人有更好的解决方案。
例荒谬的东西像这样的,基本上只是翻转桌子上轴:
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
还发现HTTP://api.rubyreports .ORG / – holden 2009-11-24 08:02:11