2016-09-07 5 views
-1


Пожалуйста, помогите мне написать запрос.
У меня есть 2 таблицы: «проекты» и «долги»
таблица «долги» имеют
Написать запрос join sum groupby in laravel

id | project_id | currency_list | total 
1 | 1   | 1    | 1000 
2 | 1   | 2    | 500 
3 | 2   | 1    | 1000 
4 | 2   | 2    | 500 
... 

Мне нужно написать запрос, чтобы взять 1000 строк из проектов и просуммировать все «общего» с группой по «currency_list "

спасибо :)

+0

вы хотите взять сумму() где всего 1000 или где project_id? – Hamelraj

+0

Нет. Я хочу взять все строки из «проектов» и суммировать «итоговую» группу «currency_list» из «долгов». Но где не работает, потому что в «проектах» у меня около 1000000 строк. В лезвии я использую разбиение на страницы, но мне нужно знать, общая сумма –

ответ

1

Эй я пытался вам надежду на работу :) Во-первых, вы должны иметь модели буксирные для таблиц в модели вызова проекта, как этот

public function debts(){ 
     return $this->hasMany('App\Debt','project_id')->selectRaw('debts.*,sum(total) as sum')->groupBy('currency_list'); 
    } 

и называем это в вашем контроллере

$projects = Project::with('debts')->get()->toArray(); 

проверить дд ($ проектов) как массив

EDIT: Используйте это в функции контроллера

$projects = DB::table('projects') 
      ->join('debts', 'projects.id', '=', 'debts.projects_id') 
      ->select('projects.*','debts.*', DB::raw('sum(total) as sum')) 
      ->groupBy('currency_list') 
      ->get(); 

затем в вашем использовании вид

@foreach($projects as $project) 
{ 
{{$project->sum}} 
} 
+0

Дорогой друг. Большое спасибо за вашу помощь, но как я могу получить общую сумму от всего необходимого проекта? :( –

0

Вы можете попробовать это

App/проект

public function getDebts() 
{ 
    return $this->hasMany('App\Debt'); 
} 

Контроллер

use App\Project; 

public function getProjects(Project $project) 
{   
    $all = $project->with(['getDebts'=>function($query){ 
       $query->selectRaw('*,sum(total) as sum') 
         ->groupBy('currency_list'); 
      }])->take(1000); 
} 
+0

Ницца, но мне нужно SUM 'total' во всех проектах :) –