我正在使用 RubyOnRails 的 Active Record 提供的 Sum 函数进行求和,如下所示:
s=DatosMateria.sum('inscritos',:conditions=> "datos_materia.ano=2005 AND materias.codigo=2394",:include=>"materias")
它返回 0 并生成以下 SQL 语句:
SELECT sum('datos_materia'.inscritos) AS sum_inscritos FROM 'datos_materia' LEFT OUTER JOIN 'materias' ON materias.codigo=datos_materia.id WHERE..
我需要它加入字段 materias.codigo=datos_materia.materia_codigo 而不是 materias.codigo=datos_materia.id (materias.codigo 和 datos_materia.id 都是主键,它们不是相同的类型,也不是关联的键。)
涉及的型号如下图:
class DatosMateria < ActiveRecord::Base set_table_name 'datos_materia' has_many :materias,:foreign_key => 'codigo' end
class Materia < ActiveRecord::Base set_primary_key 'codigo' belongs_to :datosMateria, :foreign_key=> 'materia_codigo' end