6

我需要计算我的 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;
4

2 回答 2

18

是的 :

Room.where(hotel_id: 8).sum("sqft * quantity")
于 2013-04-08T20:14:59.243 回答
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
于 2013-04-08T20:18:43.457 回答