2015-01-27 3 views
0

I 중복 또는 내가 그 교리 1 개 쿼리로 변환 할 교리 하나를 선택 열이 값

select date_created,loan_id,count(1) as cnt 
from collections 
group by date_created,loan_id 
having count(1)>1; 

SQL 이상 1 values.I 그것을 사용하여 표시 할 수 있습니다에 열을 표시하는 쿼리를 가지고, 나는 시도했다

public function getDuplicateDatePayment() { 
    $q = $this->createQuery('c') 
       ->select('c.date_created,c.loan_id,c.count(1) as cnt') 
       ->groupBy('c.date_created','c.loan_id') 
       ->having('c.count(1) > 1'); 
       return $q->execute(); 
}  

그러나 그것은 단지 errors.Any 아이디어를 올바르게 doctrine 1 쿼리로 작동하는 SQL을 변환하는 방법에 대한 반환?

SQLSTATE[42000]: Syntax error or access violation: 1630 FUNCTION c.count  does not exist. Check the 'Function Name Parsing and Resolution' section in the Reference Manual. Failing Query: "SELECT c.id AS c__id, c.date_created AS c__date_created, c.loan_id AS c__loan_id, c.count(1) AS c__0, c.count(1) AS c__0 FROM collections c GROUP BY c.date_created HAVING c.count(1) > 1" 
+0

귀하의 having 절은 다음과 같아야합니다. having ('count (1)> 1') select의 개수에는 "c"가 붙지 않아야합니다. – PeterDNCO

답변

0

문제가 계산에 포함되기를 바랍니다. 다음을 시도하십시오

public function getDuplicateDatePayment() { 
    $q = $this->createQuery('c') 
       ->select('c.date_created,c.loan_id,count(c.1) as cnt') 
       ->groupBy('c.date_created','c.loan_id') 
       ->having('c.count(1) > 1'); 
       return $q->execute(); 
}