我有以下查詢,我需要修改與symfony2一起使用。錯誤:預計文字,得到'CASE'
SELECT someColumn, COUNT(*) AS n,
SUM(IF(STATUS = 20,1,0)) AS sent
FROM someTable
WHERE ID = :id;
我做了什麼至今:
$query = ("SELECT myEntity.someField AS someColumn,
SUM(CASE WHEN myEntity.status = '20' then 1 ELSE 0 END) as sent
FROM AppRoot\MyBundle\Entity\MyEntity myEntity
WHERE myEntity.id = :id
");
,但我得到了可怕的錯誤:
Error: Expected Literal, got 'CASE'
不需要GROUP BY? – jarlh
@jarlh我稍後需要它,但目前我的主要問題是這個錯誤,沒有任何意義,以及如何將COUNT(*)從sql轉換爲dql。 – tutak
您是否嘗試刪除','在下面一行的結尾處:'SUM(case when myEntity.status ='20'then 1 ELSE 0 END)as sent,'(不知道它會解決您的問題,但你不應該在'FROM'之前加一個逗號) – Snroki