2013-08-19 29 views
0

我想跳過foreach循環;Yii如何優化sum()查詢

如何使用yii查詢獲得sum

$sql = 'select size_kb from comp_arch_stats where company_id = ' . ($model->company_id) . ' and arch_month = ' . $month . ' and arch_year = ' . $year . ';'; 
     $val = Yii::app()->db->createCommand($sql)->queryAll(); 
     $sum = 0; 
     foreach ($val AS $result) { 
      $sum += $result['size_kb']; 
     } 

回答

1

「 'SELECT SUM(size_kb)從comp_arch_stats size_kb其中的company_id ='($模型 - > COMPANY_ID)」

+0

它的工作通過使用queryScalar .. 。 奇怪的 –

0

試試這個

$criteria=new CDbCriteria; 
$criteria->select = 'sum(size_kb) AS KbCount'; 
$criteria->condition ="company_id = :company_id AND arch_month =:arch_month AND arch_year=:arch_year " 
$criteria->params = array ( 
':company_id '=> $model->company_id, 
':arch_month' => $month, 
':arch_year' => $year, 
); 
comp_arch_stats::model()->findAll($criteria);