我有这个问题:
SELECT DATE_FORMAT(exp_date, "%Y-%m") AS Month, sum(exp_total) FROM export
GROUP BY DATE_FORMAT(exp_date, "%Y-%m");
我试图将它转换为Symfony原则,如下所示:
$qb = $this
->createQueryBuilder('e')
->select('DATE_FORMAT(e.expDate, \'%Y-%m\'), sum(e.expTotal) total')
->groupBy('DATE_FORMAT(e.expDate, \'%Y-%m\')');
return $qb->getQuery()->getResult();
使用:
"beberlei/DoctrineExtensions": "^1.0"
错误:[语义错误]第0行,第103列附近 ' DATE_FORMAT(e.expDate,':错误:无法按undefined分组 识别或结果变量。
答案 0 :(得分:6)
我假设你已经配置了提到的捆绑包并添加了所需的configuration之类的
doctrine:
orm:
dql:
datetime_functions:
date_format: DoctrineExtensions\Query\Mysql\DateFormat
现在在查询中,您可以将dateAsMonth
的别名分配给DATE_FORMAT
表达式的结果,并在分组中使用此别名
return $qb = $this->createQueryBuilder('e')
->select('DATE_FORMAT(e.expDate, \'%Y-%m\') as dateAsMonth, sum(e.expTotal) total')
->groupBy('dateAsMonth')
->getQuery()
->getResult();