私はこのEvent
モデルを持っています
class Event < ActiveRecord::Base
attr_accessible :starts_at, :ends_at, :price
end
Event
は、単一のインスタント イベントにすることができます。
Event.create(:starts_at => Date.today, :ends_at=>nil, :price => 10.0)
また、数日または数か月にわたる場合もあります。
Event.create(:starts_at => Date.today, :ends_at => (Date.today + 2.months), :price => 20.0)
イベントの費用を月ごとに分類したいので、インスタント イベントの費用は当然、それが属する月に分類され、複数の月にまたがるイベントの費用はそれらの月の間で比例的に分割する必要があります。
明らかにこれは SQL を使用して処理するのは難しいでしょうが、誰かがそれについてアドバイスをしてくれるでしょうか?
この集計を計算する最も効率的な方法は何ですか?
アップデート:
これは、sqlfiddle のデータに対して明確に定義された構造です: http://sqlfiddle.com/#!12/a532e/6
このデータセットから私が望むのは次のようなものです:
( (Date('2013-01-01'), 31.6), (Date('2013-02-01'), 8.4) )