获取过去1年中每个月的模型的总统计数据(db列的总和)

时间:2011-05-23 02:08:16

标签: ruby-on-rails-3

我有一个Payments模型,用于存储payment_date和金额。我希望在过去的一年里每个月都能完成全部付款。

我开始在过去12个月内完成所有付款。现在我如何将它们分组为每个月并获得该月的总金额。我只需要结果集中的以下两个字段:“month and year”和“total_amount”。我需要这些数据来构建月度支出的图表。

我正在使用rails 3.

1 个答案:

答案 0 :(得分:1)

<强>更新

以下查询返回分组的Payment个对象,因此您需要提取所需的字段,如下所示:

@payments = Payment.select("SUM(amount) as total_payment, MONTH(payment_date) as month, YEAR(payment_date) as year").group("MONTH(payment_date), YEAR(payment_date)") 
@data = @payments.map {|payment| [payment.amount, payment.month, payment.year]} 

然后提取您需要的值。