Sql oracle ora-00979 symfony2 doctrine2
我正在构建以下DQL:Sql oracle ora-00979 symfony2 doctrine2,sql,oracle,symfony,doctrine-orm,dql,Sql,Oracle,Symfony,Doctrine Orm,Dql,我正在构建以下DQL: SELECT partial operador.{id, pmn, neteo}, sum(outcollect.montoTotal) as montoOut, outcollect.periodo as periodo, outcollect.pagado FROM RoamingOperadoresBundle:Operador operador LEFT JOIN operador.operadorHub op
SELECT partial operador.{id, pmn, neteo},
sum(outcollect.montoTotal) as montoOut,
outcollect.periodo as periodo,
outcollect.pagado
FROM RoamingOperadoresBundle:Operador operador
LEFT JOIN operador.operadorHub operadorHub
LEFT JOIN operador.outcollect outcollect
WHERE operador.ishub = 0
AND operador.neteo = 1
AND operador.incluirReportes = 1
AND operador.pmn not in('CHLTM', 'CHLCM')
AND operador.id not in(SELECT op.id
FROM RoamingOperadoresBundle:Operador op
LEFT JOIN op.operadorHub opHub
LEFT JOIN op.outcollect out
WHERE (opHub.desde <= out.periodo and (opHub.hasta >= out.periodo or opHub.hasta is null))
)
AND operador.activo = 1
GROUP BY operador.pmn, outcollect.periodo ORDER BY operador.pmn
有没有关于如何更改DQL以解决此问题的建议
根据Oracle文档,我正在使用doctrine2、symfony2和OCI8 ORA-00979不是按表达式分组 原因:GROUP BY子句不包含SELECT子句中的所有表达式。选择未包含在组中的表达式 函数,如平均值、计数、最大值、最小值、总和、STDEV或方差,必须 在GROUPBY子句中列出
Action: Include in the GROUP BY clause all SELECT expressions that
are not group function arguments.
因此,您需要将选择列表中的所有表达式/列包含到您的分组依据中。将SQL查询的分组依据更改为下面的
group by o0_.pmn, o1_.periodo, o0_.neteo, o1_.pagado, o0_.id
DQL的分组依据
GROUP BY operador.pmn, outcollect.periodo, operador.id,
operador.neteo, outcollect.pagado
group by o0_.pmn, o1_.periodo, o0_.neteo, o1_.pagado, o0_.id
GROUP BY operador.pmn, outcollect.periodo, operador.id,
operador.neteo, outcollect.pagado