我有团队和团队有多个成员。每个会员都有积分。我想按这些成员积分的总和来安排小组。
示例:
太棒了!10分
全队好得8分
因为:
团队可怕的
团队良好:
但我似乎找不到解决办法。
发布于 2015-06-03 12:35:26
我对comment.So没有足够的声誉,我在这里指定我的观点,这个团队数据和它的成员数据位于同一个表或一个表中的团队数据上,成员数据在另一个table.Which数据库中是you using.If,您可以使用MySQL或Oracle,您可以使用聚合函数和CASE语句来解决这个问题。
您可以使用这样的查询(如果使用的是MySQl数据库)
SELECT t.team_id,t.team_name,sum(t1.points) as sum_of_points,
case
when sum(t1.points)=10 then "Awsome"
when sum(t1.points)=8 then "good"
else "default"
end as credit
from team t join team_membership t1 on(t.team_id=t1.team_id)
group by t1.team_id order by sum_of_points desc发布于 2015-06-03 13:41:02
在team.rb中
has_many :memberships
def total_points
self.memberships.sum(:points)
end在控制器中
@teams = Team.all.sort_by {|team| team.total_points }.reverse在望(例如)
<% @teams.each do |team| %>
<tr>
<td><%= team.total_points %></td>
<% if team.total_points >= 10 %>
<td><%= "awesome" %></td>
<% else %>
<td><%= "good" %></td>
<% end %>
</tr>
<% end %>https://stackoverflow.com/questions/30620039
复制相似问题