j'ai les 3 modèles et les rapports entre les suivants:groupe Les associations ROR par requête
class Calendar < ActiveRecord::Base
has_many:fiscalcalendars
has_many:voucherdatas ,:through => :fiscalcalendars
end
class Fiscalcalendar < ActiveRecord::Base
belongs_to :calendar
has_many :voucherdatas
end
class Voucherdata < ActiveRecord::Base
has_many :fiscalcalendars
has_many :calendars, :through => :fiscalcalendars
end
- champs dans le calendrier: id, MONTHNAME
- champs fiscalcalendar: id, calendar_id, fiscalyearweek
- champs voucherdata: id, vhour, semaine fiscalyear
Je veux la somme des vhour pour chaque mois
Je peux l'obtenir à un groupe par semaine fiscale en faisant
Voucherdata.sum(:vhour,:group=>:fiscalyearweek)
est-il un moyen plus simple de l'obtenir par mois?
requête générée ci-dessous; notez qu'il n'y a pas de colonne fiscalcalenar.voucherdat_id par conséquent cela ne gêne pas .. thx pour votre temps SELECT somme (vhour) AS sum_vhour, calendars.name AS calendars_name FROM 'voucherdatas' INNER JOIN' fiscalcalendars' ON ('voucherdatas' .'id' = 'fiscalcalendars'.'voucherdata_id') INNER JOIN' calendars' ON ('calendars'.'id' =' budgétarifaires'.'calendar_id') GROUP BY calendars.name – philipth
Il n'y a pas de colonne voucherdata_id parce que vous n'avez ' J'ai dit à Rails comment les deux tables sont liées. J'ai modifié ma solution pour refléter cela. – EmFi