группа рельсов по нескольким столбцам - PullRequest
12 голосов
/ 07 августа 2009

у меня есть таблица бюджетов с emptype_id и calendar_id actual_head, примерный_head

когда я делаю Budgets.sum(:actual_head ,:group=>"emptype_id,calendar_id"), я не получаю результат, сгруппированный по двум вышеупомянутым столбцам, а только по emptype_id

однако, когда я проверяю журнал, запрос sql правильный

SELECT sum(`budgets`.actual_head) AS sum_actual_head, emptype_id,calendar_id AS emptype_id_calendar_id FROM `budgets` GROUP BY emptype_id,calendar_id

имеет 103 строки

Я хотел перебрать все emptype_id и calendar_id, чтобы получить сумму actual_head и сделайте некоторые вычисления на нем.

Ответы [ 3 ]

10 голосов
/ 10 октября 2009

Группировка с несколькими столбцами не поддерживается рельсами. Вы должны использовать обычный найти все:

budgets = Budgets.find(:all, 
                       :select => "emptype_id, calendar_id, sum(budgets.actual_head) AS sum_actual_head", 
                       :group => "emptype_id, calendar_id")

budgets.each { |budget| puts budget.sum_actual_head }
5 голосов
/ 04 марта 2010

Я обманываю. Do :group => ["emptype_id,calendar_id"].

Не хочу ни ты, ни я, но это работает по крайней мере.

3 голосов
/ 07 августа 2009

Я не уверен в этом, попробуйте купить :group => [:emptype_id, :calendar_id]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...