rails列由多列组成

时间:2009-08-06 20:49:20

标签: sql ruby-on-rails activerecord

我有预算表,其中包含emptype_id和calendar_id actual_head,estimated_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 个答案:

答案 0 :(得分:10)

rails不支持使用多列进行分组。你必须使用常规查找全部:

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 }

答案 1 :(得分:5)

我欺骗了。做:group => ["emptype_id,calendar_id"].

不想要你,也不想要,但这至少有用。

答案 2 :(得分:3)

我不确定,请尝试:group => [:emptype_id, :calendar_id]