我想在Doctrine2中转换它。
类似于这些问题:
Symfony2/Doctrine2 - 如何使用QueryBuilder转换此SQL请求?
如何将复杂的MySQL查询转换为原则2
使用 NOT IN 将 SQL 转换为原则 2 查询生成器或 DQL?
可能吗?
SELECT
SUM(q.amount)
FROM(
SELECT amount
FROM expense_report e0_
WHERE
(e0_.is_account_transfer = 0)
AND (e0_.remove_date IS NULL)
LIMIT 0, 2) q
谢谢
您可以使用以下自定义存储库方法存档您的问题:
public function getAmount()
{
$qb = $this->createQueryBuilder("q");
return
$qb
->select("sum(q.amount)")
->where($qb->expr()->isNull('q.remove_date'))
->andWhere('q.is_account_transfer = 0')
->setFirstResult(0)
->setMaxResults(2)
->getQuery()
->getSingleScalarResult();
}
并且只需在控制器方法中使用它,例如:
public function testAction()
{
....
$totalAmount = $this->getDoctrine()
->getRepository("AcmeDemoBundle:ExpenseReport")
->getAmount();
...
}
希望这个帮助