2014-01-31 99 views
0

如何獲得capacity.capacity的總和?從左加入主動記錄的字段總和

@capacitysum = User.joins("left join capacities c on users.id = c.user_id") 
.where('c.created_at = (SELECT MAX(c.created_at) FROM c WHERE c.user_id = users.id)') 
.where('users.role = ?', 'consultant') 

我嘗試添加一個的.sum( 'c.capacity')的.sum(:容量)和的.sum( 'capacities.capacity'),但沒有成功...

回答

1

嘗試用加select語句:

@capacitysum = User.joins("left join capacities c on users.id = c.user_id") 
.where('c.created_at = (SELECT MAX(c.created_at) FROM c WHERE c.user_id = users.id)') 
.where('users.role = ?', 'consultant').select("sum(c.capacity)") 
+0

現在,它並沒有失敗,而只是呼應@capacitysum給人,<的ActiveRecord ::關係:: ActiveRecord_Relation_User:0x007fe884acbfb0 – hso

+0

所以測試多一點點你的答案似乎是朝着正確方向邁出的一步,儘管我仍然有一個錯誤;列「users.created_at」必須出現在GROUP BY子句中或用於聚合函數中 – hso