2017-09-25 90 views
0

我有以下字段的表操作:SQL子查詢SELECT [Symfony3]

  • idAction
  • 討論終結
  • 日期

我想遍歷並顯示所有的idAction在我的DB + 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'); 

回答

0

嗯,你的問題缺乏大量的信息。這是你需要的嗎?

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) 

你不能選擇一個子查詢\選擇列表中的相關查詢,這可能表明你在錯誤信息超過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) 
+0

白鷺確切:d謝謝你這麼多 –

+0

@ M.Mery沒問題。看看編輯,這是一個更好,更有效的方法。無需額外的選擇。 – sagi