条令-按日期分组

qcuzuvrc  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(389)

我有个问题:

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列“日期格式(e.expdate)”附近:错误:无法按未定义的标识或结果变量分组。

djmepvbi

djmepvbi1#

我假设您已经配置了上述包并添加了所需的配置,如

doctrine:
    orm:
        dql:
            datetime_functions:
                date_format: DoctrineExtensions\Query\Mysql\DateFormat

现在在查询中,您可以将别名指定为 dateAsMonth 结果 DATE_FORMAT 表达式和in group by可以使用此别名

return $qb =   $this->createQueryBuilder('e')
                    ->select('DATE_FORMAT(e.expDate, \'%Y-%m\') as dateAsMonth, sum(e.expTotal) total')
                    ->groupBy('dateAsMonth')
                    ->getQuery()
                    ->getResult();

相关问题