У меня есть 3 таблицы, таблица зарплат salaries(id, name)
и таблица pointages pointages(id, datep, salarie_id, sold)
и таблица avances avances(id, datea, montantA, salarie_id)
.
таблица зарплат
Id name
1 kamal
2 imad
таблица pointages
id datep Salarie_id sold
1 11/03/2020 1 120
2 05/03/2020 1 100
3 06/03/2020 2 50
4 07/03/2020 2 20
таблицы avances
id datea montantA Salarie_id
1 11/03/2020 120 1
2 02/03/2020 50 1
по этим 3 таблицам я хочу восстановить salaries.id и salaries.name и сумму (pointages.sold) и сумму (avances.montantA), как это
Salarie.id Salaries.nom Sum(sold) Sum(montantA)
1 kamal 220 170
2 imad 70 0
Я выполняю эту функцию etatq1u контроллера, но она дает мне ошибочные суммы и единую запись заработной платы1, потому что нет возможности для записи 2 (зарплаты 2). Вот результат ошибки, который дает мне:
id:1
nom:kamal
sold:440
montantA:340
SalarieController. php
public function etatq1u(request $request){
$dataP = DB::table('salaries')
->join('pointages','pointages.salarie_id','salaries.id')
->join('avances','avances.salarie_id','salaries.id')
->selectRaw('salaries.id,salaries.nom,SUM(pointages.sold) as sold,SUM(avances.montantA) as avance')
->groupBy('pointages.salarie_id')
->get();
return response($dataP);
}
etatq1.balde. php
$.ajax({
type: 'get',
url: "{{ route('salarie.etatq1u') }}",
data: {
'annee':ann,
'mois':moi,
'salarie_id':sal,
'chantier_id':chan,
'unite' : unite
},
success: function(data1){
console.log(data1);
},
error: function(){
console.log('error');
},
});