Ich habe Modell Register, die die Anwesenheit von Benutzer basierend auf Abteilung und Gruppe markiert. Jeder Benutzer hat eine Abteilung und Gruppe.Schienen 3: Wie summiere ich Datensatz
Register Modell
date:date , departmentid:string , groupid:integer , one:integer , two:integer
unter den oben genannten Bereichen „eins und zwei“ sind Zeitschlitze (sprich: 9-14, 14-18) .Attendance sind so markiert, dass der Benutzer den aktuellen Zeitpunkt gehört, groupid Für denselben Tag gibt es mehrere Einträge mit Groupid, DepartmentID und deren Anwesenheit.
Abtastregister Tabelle unten
ich nicht finden wollen. von Benutzern, die pro Tag besucht werden. zur Zeit habe ich versucht,
@register = Register.where(:date=>"2012-12-28").sum(:one)
es ist gut bekommen, aber ich will wie finden,
@register = Register.where(:date=>"2012-12-28").sum(:one , :two ,:three)
ist es möglich ....
Vielen Dank im Voraus.
danke für den obigen Code .. ... Ist es möglich, so zu finden .. Registrieren.wo (: Datum => Datum.heute,: AbteilungsID => "DP14") .Anzahl_Anzahl (: Eins,: Zwei,: Drei) ... Wenn ja, was sollte ich im Modell schreiben. – Cyber
So etwas wie: '[: Eins,: Zwei,: Drei] .map {| Slot | Register.where (: date => Date.today,: domain => "DP14"). Timer_count (slot)}. Sum' nach [der Sum-Methode des Enumerable] (http://api.rubyonrails.org/classes /Enumerable.html#method-i-sum). Dies wird jedoch 3 Abfragen machen. Ich denke nicht, dass Sie es mit einer einzigen Abfrage leicht tun können. – systho