论坛首页 入门讨论版 rails

怎样让Model.sum返回多个列

浏览 48 次
该帖已经被评为新手帖
作者 正文
时间:2008-07-25

我的Model Bank中有3个字段:money,bank_name,save_year,现在需要根据bank_name,save_year分组来取得相应的money总数,使用AR中的sum来实现:

Bank.sum(:money,:group=>'bank_name,save_year')

但是结果只返回两列:money和save_year,如果把group中的两个字段换个位置:

Bank.sum(:money,:group=>'save_year,bank_name')

结果仍然为两列,但有点出入:money和bank_name。

 

查看了AR的相关源码,sum返回的结果是一个hash,也就是说返回结果只能为两个字段,不能返回我需要的sum_money,bank_name和save_year。

group sum这种情况很多时候都不只是用到一个字段来group吧,AR应该有相应的解决方案,但是我找了很久没有找到,不知道怎样才能够实现我的需求。当然使用SQL可以实现,但实际应用中这个查询涉及到几个表的关联,如果写原始SQL,会有一大堆join,很麻烦,而且代码移植到别的数据库时不知道会不会出问题,AR+一大堆原始SQL的实现方式比较难看,有没有别的方式实现?

   
论坛首页 入门讨论版 rails

跳转论坛:
JavaEye推荐