小编Sæv*_*var的帖子

事件范围超过一个月时,按月累计事件成本(在rails 3中)

我有这个Event模型

class Event < ActiveRecord::Base
  attr_accessible :starts_at, :ends_at, :price
end
Run Code Online (Sandbox Code Playgroud)

一个Event可以是单一的即时事件:

Event.create(:starts_at => Date.today, :ends_at=>nil, :price => 10.0)
Run Code Online (Sandbox Code Playgroud)

它也可以跨越多天或几个月:

Event.create(:starts_at => Date.today, :ends_at => (Date.today + 2.months), :price => 20.0)
Run Code Online (Sandbox Code Playgroud)

我希望将事件的成本按月分解,以便即时事件的成本自然地落入其所属的月份,并且跨越多个月的事件的成本应该在这些月份之间按比例分配.

显然使用SQL会很难处理,但也许有人对此有一些建议?

计算此聚合的最有效方法是什么?

更新:

这是一个明确定义的sqlfiddle数据结构:http://sqlfiddle.com/#!12/a532e/6

我想从这个数据集中得到的是:

( (Date('2013-01-01'), 31.6), (Date('2013-02-01'), 8.4) )
Run Code Online (Sandbox Code Playgroud)

sql postgresql ruby-on-rails date ruby-on-rails-3

6
推荐指数
1
解决办法
250
查看次数

标签 统计

date ×1

postgresql ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1

sql ×1