php sum()函数不正确的计算



我正在使用Slim Framework,我想做的是计算一定数量的特定用户。

这是我的桌子

load_up_id   user_id   amount
1            1         1000
2            1         1000
3            1         2000
4            2         3000
5            2         1000

我想获得user_id号的总量。1,但它不是4000,而是给我2000

这是我的代码

$loadups = $this->loadupPayment->where('user_id', $this->auth->user()->user_id)->get();
$total_loadup = $this->loadupPayment->select(db::raw('sum(amount) as total_loadup'))->groupBy('user_id')->get();

预先感谢您!:D

,所以您想要特定的用户ID?试试这个:

$total_loadup = $this->loadupPayment->select(db::raw('sum(amount) as total_loadup'))->where('user_id', $this->auth->user()->user_id)->get();

我认为而不是按用户ID进行分组,您需要在SUM语句中使用用户ID作为案例。从本质上讲,这是总和计算中的原因,因此您可以说用户ID是我想要的用户ID时(在这种情况1(添加值,如果不只是忽略它。

尝试这样的东西

$total_loadup = $this->loadupPayment->select(db::raw('SUM(CASE WHEN user_id = 1 THEN amount ELSE 0 END) as total_loadup'))->get();

您可能需要在上述参数中参数用户ID值。

希望这会有所帮助!

最新更新