2016-08-03 7 views
0

このクエリがあるので、CDbCriteriaを使用してこのクエリを実行します。モデルは、これは私が。これは、モデルの私の検索機能であるCDbCriteriaで...それはWHERE、GROUPBY、HAVING COUNTを使用するための適切な方法..ですこれまでにしようとしているものですClogCDBCriteriaのYiiでのクエリの書き込み場所とグループBy節

SELECT c.id, c.answer, c.number 
FROM `Clog`as c 
WHERE c.company_id =20 
AND date(c.answer) = '2016-04-02' 
GROUP BY c.calls_id 
HAVING count(c.id) <2 

あるCalls

「c.calls_id」によって
$criteria = new CDbCriteria(); 
$criteria->select = 'c.id, c.answer, c.number'; 
$criteria->addCondition(' c.company_id='.$this->companyId); 
$criteria->addBetweenCondition(' c.answer', ''.$this->start_date.'', ''.$this->end_date.''); 
$criteria->group = 'c.calls_id'; 
$criteria->limit < 2; 

私はCGridViewで結果を表示したいので、モデルの検索機能でこれを達成するためにどのように任意の提案は、...

+0

この文脈では、「未満2」右「1を等しい」と同じですか? – Strawberry

+0

はい '$ criteria-> limit = 1;' –

+0

「モデルの検索機能でこれを達成する方法」を明確にすることはできますか? – Klaus

答えて

0

フィールドは、グループは、SELECT文に存在する必要があります

$criteria->select = 'c.id, c.answer, c.number, c.calls_id'; 

例えば、「有する」のための適切な声明:

$criteria->having = "count(c.id) < 2"; 
+0

ありがとう、それは働いた... –

関連する問題