我有这个问题:
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\u FORMAT(e.expDate),':错误:无法按未定义分组 标识或结果变量。
我假设您已经配置了上述捆绑包,并添加了所需的 configuration 喜欢
doctrine: orm: dql: datetime_functions: date_format: DoctrineExtensions\Query\Mysql\DateFormat
现在,在查询中,您可以将别名指定为 dateAsMonth 至的结果 DATE_FORMAT 表达式和in group by可以使用此别名
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();