我有这个查询:
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,':错误:无法按未定义分组 标识或结果变量。
我假设您已经配置了上述捆绑包并添加了所需的配置,例如
doctrine:
orm:
dql:
datetime_functions:
date_format: DoctrineExtensionsQueryMysqlDateFormat
现在,在查询中,您可以将别名分配给表达式的结果DATE_FORMAT
dateAsMonth
,并且在分组中,您可以使用此别名
return $qb = $this->createQueryBuilder('e')
->select('DATE_FORMAT(e.expDate, '%Y-%m') as dateAsMonth, sum(e.expTotal) total')
->groupBy('dateAsMonth')
->getQuery()
->getResult();