rails db нейтральная сводная таблица или перекрестная таблица

0

Кто-нибудь знает, как построить сводную таблицу, используя activerecord, который будет удаленно DB нейтральным? Я попытался избежать использования запросов, заданных в find_by_sql и БД, но для сводной таблицы или кросс-таблицы запроса я понятия не имею, как это сделать так, чтобы не сказать MySQL. IE my mySQL find_by_sql разбивается на DB postgresql.

Я нашел http://crosstab.rubyforge.org/ этот непонятный кросс-стол, который может работать, но мне интересно, есть ли у кого-нибудь лучшее решение.

Пример чего-то такого смешного, что в основном просто переворачивает ось на стол:

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
Теги:
pivot
activerecord

1 ответ

1

Вот плагин, старый, но может быть полезным: ActiveWarehouse

Ещё вопросы

Сообщество Overcoder
Наверх
Меню