如何对group子句中的非持久属性求和

时间:2012-05-18 11:11:06

标签: sum grouping ruby-on-rails-3.2

我有一个TourDet模型,其中包括以下持久性属性:

tdclientid
tdsuppid
tdpaxnos
tdpriceperpax

我在TourDet类中也有以下内容

def tourval
  tdpaxnos * tdpricerperpax
end

我现在正尝试执行以下操作:

 tdis = TourDet.find(:all, conditions: ['tdtourhdrid = 23'], group: [:tdsuppid,:tdclientid], select: ['tdsuppid,tdclientid,sum(tourval) as ttl'])

然而,rails抱怨未知列'tourval'。

关于如何以另一种方式实现相同结果的任何想法?

我正在使用Rails 3.2和Ruby 1.9以及MySQL。

1 个答案:

答案 0 :(得分:0)

据我了解你的应用程序,你不能在查询中引用tourval,因为它是在Ruby中定义的,而不是在MySQL中定义的。

这个怎么样?

tdis = TourDet.find(:all, conditions: ['tdtourhdrid = 23'], group: [:tdsuppid,:tdclientid], select: ['tdsuppid,tdclientid,sum(tdpaxnos*tdpricerperpax) as ttl'])