0

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 コンストラクトは正しいですか?

4

2 に答える 2

0

問題になる可能性があるのは、この文字列リテラル内の「AS」ステートメントです。

array('SUM(expense_details_amount) AS total'))

これを次のように変更してみてください。

array('total' => 'SUM(expense_details_amount)'))

これが Zend_Db_Select が AS を処理する方法だと思います。

于 2010-03-31T13:28:57.950 に答える
0

解決策を一生懸命探した後、問題がどこにあるかを見つけました。

私が変更され

$value = $this->fetchAll($select); 
$data[] = $value->total; 

$value = $this->fetchRow($select); 
$data[] = $value->total;
于 2010-03-31T14:57:20.290 に答える