laravel雄辩的where子句中的列总和

时间:2019-04-19 18:16:45

标签: php laravel eloquent

我有一个FamilyMember模型和一个SubscriptionCharge模型,SubscriptionCharge存储每个家庭成员多个月的费用。 我必须选择收费总额大于特定金额的会员。

$members=FamilyMember::whereHas('subscription_charge', function ($qq) {
   $qq->where(); // how to check sum of column 'amount' in where
})->get();

如何在where条件下检查“金额”列的总和

2 个答案:

答案 0 :(得分:1)

根据您的评论,更新答案

$memeber = FamilyMember::query()
    ->join(DB::raw('("SELECT subscription_charge.family_member_id, SUM(subscription_charge.amount) as total_charges FROM subscription_charge GROUP BY subscription_charge.family_member_id HAVING SUM(subscription_charge.amount) > 
AMOUNT_YOU_WANT") as sub_table'), function($join) {
         $join->on('sub_table.family_member_id', '=', 'family_member.id');
    })->get();

注意:未经测试

答案 1 :(得分:0)

我认为您也许可以做这样的事情。 (我在机场,所以无法测试。)

In [3]: numpy.prod([10000, 10000, 10000, 10000, 10000, 10000], dtype='int64')
Out[3]: 2003764205206896640