我的查询看起来像
SELECT
COUNT(*) as cnt, ROUND(SUM(cost),2) as cost
FROM
(SELECT ROUND(SUM(cost),2) as cost FROM accounts LEFT JOIN earnings ON earnings.id = accounts.id WHERE earnings.date >= ? GROUP BY earnings.id) src;
如何使用 Doctrine 中的 $querybuilder 编写它?
我不得不提一下,收入是一天一天分配的,所以我们必须从 select 中选择。
我试过了:
$qb = $this->em->getConnection()->createQueryBuilder();
$qb->select('COUNT(*) as cnt, ROUND(SUM(cost),2) as cost');
$qb->from(
$qb->select('SELECT ROUND(SUM(cost),2) as cost')
->from('accounts')
->leftJoin('accounts', 'earnings', 'earnings', 'earnings.id = accounts.id')
->where('earnings.date >= :date')->setParameter(':date', $dto->getFromSqlFormat())
->groupBy('earnings.id')
);
但它不起作用,我收到错误:
Warning: Illegal offset type