我需要计算Rails 3应用程序中两个字段的乘积之和(即相当于Excel的sumproduct函数)。 Rails中是否有一个方法可以帮助解决这个问题,如果没有,那么使用自定义sql的rails代码是什么?
例如,酒店有很多房间。房间具有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;
答案 0 :(得分:18)
Room.where(hotel_id: 8).sum("sqft * quantity")
答案 1 :(得分: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