Во-первых, быстрый совет по работе с Zend_Db_Select (и расширением Zend_Db_Table_Select), вы можете просмотреть сгенерированный SQL, вызвав метод toString. Важно убедиться, что ваш код генерирует правильный запрос, прежде чем работать с набором результатов:
$select = $table->select();
$select->from ("table", array("date", "column1" => "sum(column1)"));
$select->group ( array ("date") );
$sql = (string) $select; //Retrieve SQL as a string
Или просто
die($select); //print SQL
Я написал следующий тестовый скрипт на вашем примере, и у меня нет проблем:
class Table extends Zend_Db_Table_Abstract
{
protected $_primary = 'id';
protected $_name = 'table';
}
$db = Zend_Db::factory('Pdo_Mysql', array(
'dbname' => 'test',
'username' => 'root',
'password' => '',
'host' => 'localhost'
));
$table = new Table($db);
$select = $table->select();
$select->from ($table, array("date", "column1" => new Zend_Db_Expr("sum(column1)")));
$select->group ( array ("date") );
$sql = (string) $select;
echo $sql;
$results = $table->fetchAll ($select);
$result = $results[0];
$date = $result->date;
$column1 = $result->column1;
echo '<br>' . $date . ': ' . $column1;
Использовать Zend_Debug :: dump ($ result); при необходимости проверить данные внутри Zend_Db_Table_Row.
В моем случае сгенерированный SQL выглядит следующим образом:
SELECT `table`.`date`, sum(column1) AS `column1` FROM `table` GROUP BY `date`