【发布时间】:2020-06-24 08:41:54
【问题描述】:
我有 3 张桌子,工资表 salaries(id, name) 和积分表 pointages(id, datep, salarie_id, sold) 和 avances 表 avances(id, datea, montantA, salarie_id)。
表薪
Id name
1 kamal
2 imad
积分表
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
高级桌子
id datea montantA Salarie_id
1 11/03/2020 120 1
2 02/03/2020 50 1
通过这 3 个表,我想恢复薪水.id 和薪水.名称和总和 (pointages.sold) 和总和 (avances.montantA) 这个
Salarie.id Salaries.nom Sum(sold) Sum(montantA)
1 kamal 220 170
2 imad 70 0
我执行控制器的这个函数 etatq1u,但它给了我错误的总和和一个单一的记录薪金1,因为没有记录 2(薪金 2)的 avance。 这是给我的错误结果:
id:1
nom:kamal
sold:440
montantA:340
SalrieController.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');
},
});
【问题讨论】:
-
这和jQuery有什么关系?
-
@Andreas 没有什么只是为了完成问题
-
这对你有帮助吗:- stackoverflow.com/questions/34557952/…
-
如果这是 Laravel,则根本不需要使用 DB 门面。关系应该自动创建这些连接。类似
Salary::select(['id', 'nom'])->with(['pointages', 'avances'])->sum('pointages.sold')->sum('avances.montantA')->groupBy('id');