SQL SELECT 中的子查询 [Symfony3]
SQL Subquery IN SELECT [Symfony3]
我有 Table 个具有以下字段的操作:
- idAction
- 服饰
- 日期
我想遍历并显示所有 idAction
在我的数据库中的列表 + idAction
与 Cloture = 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)
我有 Table 个具有以下字段的操作:
- idAction
- 服饰
- 日期
我想遍历并显示所有 idAction
在我的数据库中的列表 + idAction
与 Cloture = 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)