Doctrine2 QueryBuilder 具有 max(field) 为空



如何使用 Doctrine2 QueryBuilder 执行以下操作?

$qb->select('o, MAX(r.performanceDate) AS HIDDEN maxPerformanceDate')->
            from("Officer",'o')->
            leftJoin("o.reports",'r',Join::ON,'')->
            // andWhere('r.performanceDate is NULL OR maxPerformanceDate < :date OR maxPerformanceDate > :currentMonthDate')-> // does not work either, can't "WHERE" an aggregate function
            having('maxPerformanceDate < :date OR maxPerformanceDate > :currentMonthDate')->
            orHaving('maxPerformanceDate is null')-> // error here
            addOrderBy('r.performanceDate','ASC')->
            addOrderBy('o.name','ASC')->
            groupBy("o.id")
            // .. setParamters, etc.
        ;

当我执行代码时,我收到一个错误:

DoctrineORMQueryQueryException : [Semantical Error] line 0, col 293 near 'maxPerformanceDate': Error: 'maxPerformanceDate' does not point to a Class.

我已经用MySQL手动尝试过这个,它可以工作。任何解决方法都值得赞赏。首选是不必下拉到使用本机 SQL。

完整的表定义可以在我的另一个问题中找到:

两个相关表之间的 SQL SELECT 数据不在特定日期范围内

这是

Doctrine2中的一个错误。它已在最新的 dev 分支中修复,但要到 2.5 才会发布。

http://www.doctrine-project.org/jira/browse/DDC-1858

相关内容

  • 没有找到相关文章

最新更新