我有下一个问题:
我在mysql上有下表
ID | IDPAYMENT | CUSTOMER | PAYDATE | STATUS | PENDINGAMOUNT | PAYTO DATE
1 | 1 | JOHN | 2018-12-15 | PAYED | $0 | 2018-11-01
2 | 1 | JOHN | NO/PAY | PENDING | $10 | 2018-11-15
3 | 1 | JOHN | NO/PAY | PENDING | $10 | 2018-12-01
4 | 1 | JOHN | NO/PAY | PENDING | $10 | 2018-12-15
5 | 1 | JOHN | NO/PAY | PENDING | $10 | 2019-01-01
6 | 1 | JOHN | NO/PAY | PENDING | $10 | 2018-01-15
7 | 1 | JOHN | NO/PAY | PENDING | $10 | 2018-02-01
我想用PENDING计数状态并与ID的计数进行比较:
状态待定= 6
ID COUNT = 7
想法是求和状态为Pending的PENDINGAMOUNT的总和,日期为<到今天,以添加不付款的佣金...
答案 0 :(得分:0)
对于:
求和状态为Pending,日期为<到今天的PENDINGAMOUNT ...
原始SQL:
SELECT COUNT(*) FROM table_name WHERE `status` = 'PENDING` AND `paydate` < CURDATE()
转换为laravel构建器:
$count = Model::where('status', 'PENDING')->whereDate('paydate', '<', Carbon::today())->count();
获取所有行的总数:
$totalCount = Model::count();
不确定是否要增加佣金,因为我们将需要更多的业务逻辑。
答案 1 :(得分:-2)
我不知道您的模型名称是什么,但是使用Laravel使用一个查询即可快速轻松地解决您想要的问题:
$models = \App\YourModelName::get();
然后从集合中获取计数:
$idCount = $models->count();
$statusPendingCount = $models->where('status', 'PENDING')->count();
在已经查询了模型的情况下,您可以通过集合获得其余的需求。