2013-04-08 76 views
6

我需要計算我的Rails 3應用程序中兩個字段乘積的總和(即等同於Excel的sumproduct函數)。在Rails中是否有一個方法可以幫助解決這個問題,如果沒有,那麼使用自定義sql的rails代碼是什麼?Rails 3 Sum兩個字段的產品

例如,酒店有很多房間。一個房間具有sqft(平方英尺),數量(該尺寸)和hotel_id的屬性。我想計算給定酒店中所有房間的總平方尺寸。在SQL中,爲Hotel.id = 8,我相信下面的語句將工作:

select sum(rooms.sqft * rooms.quantity) as SumSqft from rooms inner join hotels on rooms.hotel_id = hotels.id where hotels.id = 8; 

回答

17

沒錯:

Room.where(hotel_id: 8).sum("sqft * quantity") 
+0

完美。謝謝!我認爲對於目前的酒店展示行動,我可以用「@ hotel.id」替代「8」。 – Ryan 2013-04-08 20:31:49

+0

是:) 10chars! – 2013-04-08 20:41:50

0
def calculate 
    @hotel=Hotel.find(params[:id] 
    @rooms=Room.all.where(:hotel_id=>@hotel.id) 
    sum=0 
    @rooms.each do |room| 
    sum=sum+room.sqft*room.quantity 
    end 
    return sum 
end