Zend framework2 将sql zend framework 1转换为zend framework 2

Zend framework2 将sql zend framework 1转换为zend framework 2,zend-framework2,Zend Framework2,我有zf1的SQL语句如下: $tableName = 'log_ccu_' . $gameId; $sql = 'SELECT MAX(su) AS total '; $sql .= 'FROM '; $sql .= '(SELECT SUM(ccu) AS su '; $sql .= 'FROM ' . $tableName . ' WHERE `time` BETWEEN "' . $startMoment . '" AND "' . $endMoment

我有zf1的SQL语句如下:

 $tableName = 'log_ccu_' . $gameId;
    $sql = 'SELECT MAX(su) AS total ';
    $sql .= 'FROM ';
    $sql .= '(SELECT SUM(ccu) AS su ';
    $sql .= 'FROM ' . $tableName . ' WHERE `time` BETWEEN "' . $startMoment . '" AND "' . $endMoment . '" ' . $_where . $where;
    $sql .= 'GROUP BY time) AS p ';
    $stmt = $this->_ccuMobileDb->query($sql);
    $row = $stmt->fetch();
现在,我想使用select tablegateway将其转换为zf2。我尝试了此操作,但不起作用:

$tableName = 'log_ccu_' . $gameId;
    $apdater = ServiceLocatorFactory::getInstance()->get("Zend\Db\Adapter\Adapter");
    $tableGateway = new TableGateway($tableName, $apdater);
    $select = $tableGateway->getSql()->select();
    $subSql = $tableGateway()->getSQl()->select();
    $subSql->columns(['su'=>new \Zend\Db\Sql\Predicate\Expression('SUM(ccu)')])->where([new \Zend\Db\Sql\Predicate\Between('time',$startMoment,$endMoment)]);
    $sub = $subSql->getSqlString($adapter->getPlatform());
    $select->column(['total'=> new \Zend\Db\Sql\Predicate\Expression($sub)]);

那么问题到底是什么呢?第一个语句有效吗?第二条语句给出了什么错误?此错误:致命错误:未捕获异常“Zend\View\exception\RuntimeException”和消息