2015-01-31 2 views
0

у меня есть некоторые проблемы с запросом MYSQL в ZendFramework, я хочу, чтобы получить среднюю продолжительность вызова в последние 24 часов и запроса, как это:средняя продолжительность разговора в последние 24 часа ZendFramework

SELECT AVG(duration) FROM table1 where calldate > DATE_SUB(CURDATE(), INTERVAL 24 HOUR; 

Вот код из моего ZendFramework:
Модели:

<?php 
class Model_Cdr extends Zend_Db_Table_Abstract 
{ 
    protected $_name = 'table1'; 
    protected $_schema = 'db1'; 
} 

контроллер:

$callModel= new Model_Cdr(); 
    $select_tot_24 = $callModel->fetchAll($callModel->select()->where("calldate > DATE_SUB(CURDATE(), INTERVAL 24 HOUR)")); 
    echo $avg_24 = AVG($select_tot_24); 

, а также я попытался это:

$callModel= new Model_Cdr(); 
$avg_24_1 = $callModel->fetchAll("SELECT AVG(duration WHERE calldate > DATE_SUB(CURDATE(), INTERVAL 1 HOUR))"); 

ответ

1

Использование:

$callModel = new Model_Cdr(); 
$select = $callModel->select() 
      ->from($callModel, array('average' => 'AVG(duration)')) 
      ->where('calldate > DATE_SUB(CURDATE(), INTERVAL 24 HOUR)'); 

    $row = $callModel->fetchRow($select); 
    echo 'Average time: ' . $row->average; 
1

Использование Zend_Db_Table_Select:

$callModel = new Model_Cdr(); 
$select = $callModel->select() 
        ->from('table1', array('average' => 'AVG(duration)')) 
        ->where('calldate > DATE_SUB(CURDATE(), INTERVAL 24 HOUR)'); 

$row = $callModel->fetchRow($select); 
echo 'Average time: ' . $row->average; 
+0

Спасибо за Ваш комментарий. Сообщение: SQLSTATE [42S02]: Базовая таблица или вид не найден. Я отредактировал свой вопрос. пожалуйста, просмотрите это – AFN

+1

@afn: Я исправил свой ответ. –

Смежные вопросы