Using SUM in Laravel

noname :

I am a new Laravel learner and having difficulty to convert from sql

here is my sql

select sum(employee_income) 
from employee 
group by employee_id, employee_department

this query works when I test.

here is my simplified Laravel but it doesn't work.

DB::raw('(select sum(employee_income) from employee group by employee_id, employee_department)')

Can anybody see something wrong?

Tim Lewis :

You shouldn't use DB::raw() unless you have to. Laravel has the Eloquent Query Builder, which provides an easy to type, Database-agnostic (works with all DBs) method of writing queries. This one should be pretty simple:

$sum = Employee::groupBy('employee_id')
->groupBy('employee_department')
->sum('employee_income');

// Or, if you don't have an `Employee.php` model

$sum = DB::table('employees')
->groupBy('employee_id')
->groupBy('employee_department')
->sum('employee_income');

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=319674&siteId=1