【发布时间】:2020-01-15 22:12:14
【问题描述】:
我有一个叫做sales的表,有100行,表有2个字段,即total和commission,我想把所有行的SUM(total-commission)变成一个值
【问题讨论】:
-
您尝试了哪些方法,但为什么没有在您之后得到结果?
我有一个叫做sales的表,有100行,表有2个字段,即total和commission,我想把所有行的SUM(total-commission)变成一个值
【问题讨论】:
sum() 函数。$sum = Sale::select(
DB::raw('commissioned_total as total - commission')
)
->sum('commissioned_total');
sum() 函数。$sum = Sale::all()->sum(function($sale) {
return $sale->total - $sale->commission;
});
在Sale模型上定义这个commissionedTotal()函数,并将sum函数用作高阶消息。
销售模式
public function commissionedTotal()
{
return $this->total - $this->commission;
}
控制器
$sum = Sale::all()->sum->commissionedTotal()
第三种方法更优雅,是 Laravel 首选的方法。
【讨论】:
ErrorException : stripos() expects parameter 1 to be string, object given. 似乎 sum 中的函数不接受对象作为参数
根据您的问题,示例查询可能只有两个字段:
SELECT SUM(s.total-s.commission) as myResult from sales as s WITH (NOLOCK);
【讨论】: