这是我的表:
id remaining_amount additional_amount
1 200 0
2 100 -100
3 300 100
4 200 -50
我正在尝试获取总计 remaining_amount + additional_amount >的行0。
$result = $this->model->where('remaining_amount' + 'total' > 0)->get();
它不起作用。然后我试着这样:
$result = DB::table('cash')->select(DB::raw('remaining_amount+additional_amount AS total'))
->where('total','>',0)
->get();
它也不起作用。
请告诉我解决这个问题的方法。
答案 0 :(得分:1)
使用whereRaw
:
$query = DB::table('cash')
->whereRaw("(remaining_amount+additional_amount AS total) > 0)")
->get();
答案 1 :(得分:0)
您无法在计算值的条件下执行。尝试使用filter中的laravel collection来获得所需的输出。
$result = DB::table('cash')
->select(DB::raw('(remaining_amount+additional_amount) AS total'))
->get();
执行过滤器
return collect($result)->filter(function($value){
return $value->total > 0;
})->values()->all();
答案 2 :(得分:-1)
我认为你使用聚合方法总结为
$result = DB::table('cash')->SELECT SUM(remaining_amount)+additional_amount AS total')->where('total','>',0)->get();
希望它对您有用
答案 3 :(得分:-1)
$result = DB::table('cash')->get();
$result = collect($result)->filter(function($value){
return $value->remaining_amount + $value->additional_amount > 0;
})->values()->all();
知道了。感谢