2016-04-26 6 views
1

Ich habe eine Tabelle wie folgt aus:Erhalten Tisch mit Summe für jeden Mitarbeiter

employee_id 
task_hour 
month 
project_id 

Ich möchte die Summe der Stunden bekommen Mitarbeiter jeden Monat gearbeitet hat. Ich habe folgendes versucht:

$activity = $this->activity 
     ->get(['employee_id','month','task_hour'])->sum('task_hour'); 

Aber ich bekomme nur eine Nummer. Eigentlich möchte ich jeden Mitarbeiter sehen, dann jeden Monat dann die Summe der Arbeitsstunden.

Danke.

Antwort

1

Wenn Sie wollen Aggregatabfrage in der rechten Weise verwenden, fügen Sie einfach eine Gruppe wie:

$activity = $this->activity 
    ->select('employee_id', 'month', DB::raw('SUM(task_hour) as task_hour')) 
    ->groupBy('employee_id', 'month') 
    ->get(); 

Sie werden in jedem Monat eine Sammlung mit einer Summe von Aufgabe Stunden.

Verwandte Themen