我有以下从Zend_DB_Table_Abstract扩展的查询
$select = $this->select()
->from('expense_details',
array('SUM(expense_details_amount) AS total'))
->where('YEAR(expense_details_date) = ?', '2010')
->where('MONTH(expense_details_date) = ?', '01')
->where('expense_details_linkemail = ?', 'xxxx@gmail.com');
然而,尽管其“等效”返回了所需的值
,但它返回NULL值SELECT SUM(expense_details_amount) AS total FROM expense_details
WHERE
YEAR(expense_details_date) = '2010'
AND MONTH(expense_details_date) = '01'
AND expense_details_linkemail = 'xxxx@gmail.com'
我的Zend_DB_Table构造是否正确?
答案 0 :(得分:0)
可能存在问题的一个问题是此字符串文字中的“AS”语句。
array('SUM(expense_details_amount) AS total'))
尝试将其更改为:
array('total' => 'SUM(expense_details_amount)'))
我相信这是Zend_Db_Select处理AS的方式。
答案 1 :(得分:0)
在努力寻找解决方案后,我发现了问题所在。
我改变了
$value = $this->fetchAll($select);
$data[] = $value->total;
到
$value = $this->fetchRow($select);
$data[] = $value->total;