SQL SELECT 中的子查询 [Symfony3]

SQL Subquery IN SELECT [Symfony3]

我有 Table 个具有以下字段的操作:

我想遍历并显示所有 idAction 在我的数据库中的列表 + idActionCloture = 0 按相同日期分组(两者)。

我试过下面的方法。但它不起作用。谁能帮帮我?

$query = $this->getEntityManager()->createQuery(

'SELECT COUNT(a.idAction) AS nmbreAction , week(a.dateOuverture) AS week,( SELECT COUNT(c.idAction) , week(c.dateOuverture) FROM ActionActionBundle:Action c 
WHERE c.cloture = 0 ) AS nmbreRetard FROM ActionActionBundle:Action a 
GROUP BY week');

嗯,你这个问题信息量太少了。这是你需要的吗?

SELECT COUNT(a.idAction) AS nmbreAction ,
       week(a.dateOuverture) AS week,
       (SELECT COUNT(c.idAction) 
        FROM ActionActionBundle:Action c
        WHERE c.cloture = 0 
          and week(c.dateOuverture) = week(a.dateOuverture)) AS nmbreRetard 
FROM ActionActionBundle:Action a
GROUP BY week(a.dateOuverture)

在 select 列表的子 query\correlated 查询中,您不能 select 多于 1 列,这可能已在错误消息中向您显示。

编辑:最好这样做:

SELECT COUNT(a.idAction) AS nmbreAction ,
       week(a.dateOuverture) AS week,
       COUNT(CASE WHEN a.cloture = 0 THEN 1 END) as nmbreRetard
FROM ActionActionBundle:Action a
GROUP BY week(a.dateOuverture)