教义 - 按日期分组



我有这个查询:

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();

相关内容

  • 没有找到相关文章

最新更新