2016-10-04 44 views
0

计算汇总我在Yii的1.1一个简单的模型:的Yii:按日期

Expense 

amount: int 
date: string 

如何通过使用内置的Yii的能力日期计算合计?

换句话说我想通过获得以下查询的结果的Yii:

SELECT 
    date, SUM(amount) AS dateAmount 

FROM 
    tbl_expense 

GROUP BY 
    date 

ORDER BY 
    date DESC 
+0

日期是永远不会在字符串格式 –

回答

3

我已经探索了2种方式执行查询,

第一:

$list= Yii::app()->db->createCommand('SELECT date, SUM(amount) AS dateAmount 
FROM tbl_expense 
GROUP BY date 
ORDER BY date DESC')->queryAll(); 
var_dump($list->getData()); 

第二: (通常用于向Gridview和Listview提供数据提供者)

$select = "SELECT date, SUM(amount) AS dateAmount 
FROM tbl_expense 
GROUP BY date 
ORDER BY date DESC"; 

$dataProvider=new CSqlDataProvider($select, 
array(
    'pagination'=>false, 
    'params'=>$sqlParam 
    ) 
); 
var_dump($dataProvider->getData()); 
+0

这会工作,但它是一个SQL。有没有Yii方式来解决这个任务? –

+1

CDbCriteria是使用Active Record的选项。但对于SUM,我没有得到预期的答案 –

1

你可以使用标准

$criteria = new CDbCriteria(); 
$criteria->select = 'date, SUM(amount) dateAmount'; 
$criteria->group = 'date'; 


$model=Expense::model()->find($criteria);