2014-10-31 3 views
0

я хочу показать некоторые вычисляемые значения в CGridView, но он показывает только ONE строку в CGridViewYii Критерии только один ряд в результате

Функция:

public $Name; 
public $ calculatedSum; 

public function listSum() 
{ 
     $criteria = new CDbCriteria(); 
     $criteria->select = 'Name as Name,' 
       . 'sum((wert1-wert2-wert3-wert4)*24) AS calculatedSum,' 
     return new CActiveDataProvider ($this, array (
       'criteria' => $criteria)); 
} 

Когда я удалить AS calculatedSum часть запроса он показывает все результаты, но с частью AS calculatedSum он показывает только один результат в CGridView. Но мне нужно AS calculatedSum, чтобы показать вычисленное поле в представлении.

У кого-нибудь есть идея для решения?

+0

что об этом? '$ criteria-> select = 'Name Name, sum ((wert1-wert2-wert3-wert4) * 24) calculateSum''? –

+0

calculateSum не находится в БД, мне нужно «AS calculateSum», чтобы индексировать его в GridView – weswesx

+0

Я знаю, дело в том, что я удалил дополнительные ',' и также удалил 'AS'. –

ответ

1
$criteria->select = 'Name as Name,' 
    . '((wert1-wert2-wert3-wert4)*24) AS calculatedSum,' 

Не используйте функцию sum. Это суммирует все столбцы, и без группы (которая также не нужна) всегда будет вызывать только одну строку. Все, что вам нужно, это простая арифметика, так как у вас есть внутри круглой скобки.

+0

Это работает отлично, спасибо вам большое! – weswesx