【发布时间】:2020-07-23 20:20:04
【问题描述】:
我有这样的表: enter image description here
我想从最后 2 行输入的“总计”字段中获取总和,
这是我的代码:
$data = DB::table('packagings')->where('plant',$pt->plant)->orderBy('id','desc')->limit(2)->sum('total');
但我的代码从字段“总计”中获取所有总和
【问题讨论】:
我有这样的表: enter image description here
我想从最后 2 行输入的“总计”字段中获取总和,
这是我的代码:
$data = DB::table('packagings')->where('plant',$pt->plant)->orderBy('id','desc')->limit(2)->sum('total');
但我的代码从字段“总计”中获取所有总和
【问题讨论】:
Mysql 会先从表packagings 中求和total,这将成为一条记录,然后从一条记录中取出两条记录。所以它总是从字段total返回所有总和。
$data = DB::table('packagings')->where('plant',$pt->plant)->latest()->take(2)->get()->sum('total');
$sub = DB::table('packagings')->where('plant',$pt->plant)->latest()->take(2);
$data = DB::table(DB::raw("({$sub->toSql()}) AS sub"))->mergeBindings($sub)->sum('total');
【讨论】: