我正在使用超薄框架,我想做的是计算一定数量的特定用户..
这是我的表
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
答案 0 :(得分:1)
所以你想要一个特定用户的ID?试试这个:
$total_loadup = $this->loadupPayment->select(db::raw('sum(amount) as total_loadup'))->where('user_id', $this->auth->user()->user_id)->get();
答案 1 :(得分:0)
我认为,不是按用户ID进行分组,而是需要在sum语句中将用户ID用作 CASE 。这实际上是SUM计算中的原因,因此您可以说当用户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值。
希望这有帮助!