我有下一个问题:
我有关于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
我们的想法是将状态=待定的PENDINGAMOUNT和日期<到今天添加为无付款的佣金......
用于:
SUM状态=待定的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();
不确定添加佣金,因为我们需要更多的业务逻辑。
我不知道你的模型名称是什么,但要准确得到你要求的是Laravel使用单个查询快速简单地解决:
$models = \App\YourModelName::get();
然后从集合中获取计数:
$idCount = $models->count();
$statusPendingCount = $models->where('status', 'PENDING')->count();
通过已查询的模型,您可以通过集合获得其他可能需要的内容。