与其他列值相乘后如何获得一列的总和

时间:2018-09-18 22:05:19

标签: laravel laravel-5 eloquent laravel-5.2

take a look at this Database screenshot

有两个不同的列,我想将“购买”列与“股票”列相乘。然后想对所有答案求和。按照示例,第一行的答案是6600,第二行的答案是4500,我想要相乘和后的总和。

尝试过此代码:但结果为0。

$purchase_sum = Stock::All()->sum('purchase' * 'stock');

使用Laravel雄辩的方法。

预先感谢

1 个答案:

答案 0 :(得分:1)

您可以使用SQL查询(documentation)将值相乘和求和:

$total = DB::table('stock')->selectRaw('purchase * stock AS total')->sum('total');

或者您可以在集合(documentation)上使用reducer:

$total = Stock::all()->reduce(function ($total, $item) {
    return $total + ($item->purchase * $item->stock);
});