次のように、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.id の代わりに、フィールド materias.codigo=datos_materia.materia_codigo で結合する必要があります (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