如何将 SQL 查询转换为原则 2.



我想在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();
    ...
}

希望这个帮助

相关内容

  • 没有找到相关文章

最新更新