我有预算表,其中包含emptype_id和calendar_id Actual_head,estimate_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的总和
并对此进行一些计算。

最佳答案

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 }

关于sql - Rails按多列分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1241352/

10-11 14:41