php - php中获取具有相同id的字段的最大值

标签 php mysql zend-framework zend-framework2 zend-db-table

我需要返回所有 InstallmentDate 以及返回数据,这里的问题是我对多个 InstallmentDate 有相同的 OrderInstallmentDetailsId .

    $select = $this->select()
            ->setIntegrityCheck(false)
            ->from(array('j' => DB_TABLE_PREFIX . 'finance_journal'), array(
                '*',
                'JournalCreatedDate' => 'CreatedDate'
            ))
            ->join(array('jr' => DB_TABLE_PREFIX . 'finance_journal_reference'), 'j.JournalId = jr.JournalId', array(
                'totalDebitAmount' => 'SUM(DebitAmount)',
                'totalCreditAmount' => 'SUM(CreditAmount)',
                'debitBalanceAmount' => 'SUM(DebitAmount) - SUM(CreditAmount)',
            ))
            ->join(array('a' => DB_TABLE_PREFIX . 'finance_account'), 'jr.AccountId = a.AccountId', array(
                'AccountId',
                'AccountGroupId',
                'AccountCode',
                'AccountPath',
                'AccountName'
            ))
            ->join(array('ja' => DB_TABLE_PREFIX . 'finance_journal_approved_user'), 'j.JournalId = ja.JournalId', array())
            ->join(array('c' => DB_TABLE_PREFIX . 'customer'), 'a.AccountId = c.AccountId', array(
                'CustomerId',
                'CustomerAccountId' => 'AccountId'
            ))
            ->join(array('O' => DB_TABLE_PREFIX . 'order'), 'O.UserId = c .CustomerId', array(
                'OrderId'
               ,'OrderInstallmentId'))
             ->join(array('oi' => DB_TABLE_PREFIX . 'order_installment'), 'oi.OrderInstallmentId = O.OrderInstallmentId', array(
                'OrderInstallmentId',
                'InstallmentId',
                'NumberOfInstallments'
            ))
             ->join(array('oid' => DB_TABLE_PREFIX . 'order_installment_details'), 'oid.OrderInstallmentId = oi.OrderInstallmentId', array(
                'OrderInstallmentDetailsId',
                'InstallmentDate'
            ))
            ->join(array('f' => DB_TABLE_PREFIX . 'firm'), 'f.FirmId = c.FirmId', array('FirmName'))
            ->join(array('u' => DB_TABLE_PREFIX . 'user'), 'u.UserId = c.CustomerId', array('FirstName', 'LastName'))
            ->group('a.AccountId')
         ->order('j.CreatedDate ASC');
           //->order('oid.OrderInstallmentDetailsId DESC');

    if ($this->_authUser->sessionBranch() > 0) {
        $select->where('j.BranchId = ?', $this->_authUser->sessionBranch());
    }

    if ($firmId > 0) {
        $select->where('f.FirmId = ?', $firmId);
    }
    if (empty($fromDate)) {
        $fromDate = strtotime('-30 days');
    } else {
        $select->where('j.JournalDate >= ?', Utils_Converter::mysqlDate($fromDate));
    }

    if (!empty($toDate)) {
        $select->where('j.JournalDate <= ?', Utils_Converter::mysqlDate($toDate));
    }

    if ($minimumDebitBalance == 0) {
        $select->having('debitBalanceAmount > ?', $minimumDebitBalance);
    } else {
        $select->having('debitBalanceAmount >= ?', $minimumDebitBalance);
    }

    if ($maximumDebitBalance == 0) {            
    } else {
        $select->having('debitBalanceAmount < ?', $maximumDebitBalance);
    }

    //echo $select;exit;
    $returnData = array();
    foreach ($this->fetchAll($select) as $row) {
        //if($row['debitBalanceAmount'] >= $minimumDebitBalance){
        $returnData[$row['AccountId']] = $row->toArray();
        //}
    } 
    return $returnData;
}

我的主要目标是从日期数组中获取最大日期。

最佳答案

    ->join(array('oid' => DB_TABLE_PREFIX . 'order_installment_details'), 'oid.OrderInstallmentId = oi.OrderInstallmentId', array(
                'OrderInstallmentDetailsId',
                'lastInstallmentDate' => new Zend_Db_Expr('MAX(InstallmentDate)')
            ))
            ->join(array('f' => DB_TABLE_PREFIX . 'firm'), 'f.FirmId = c.FirmId', array('FirmName'))
            ->join(array('u' => DB_TABLE_PREFIX . 'user'), 'u.UserId = c.CustomerId', array('FirstName', 'LastName'))
            ->group('a.AccountId')
         ->order('j.CreatedDate ASC');

关于php - php中获取具有相同id的字段的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30183545/

相关文章:

php - 使用 static::MY_CONST vs self::MY_CONST vs SomeClass::MY_CONST 引用 PHP 7 中的常量

mysql - 在链接的Mysql服务器中查询

mysql - 我们真的需要在删除表之前删除外键吗?

php - 优化我的表现

zend-framework - 如何检查请求是否在 Zend Framework 中发布

php - 数组是 Traversable 的实例吗?

php - 如何在电子邮件中添加嵌入视频?

php - Google Cloud Storage 一个文件同时访问多个

php - 当mysql数据库更改时动态更改网站内容

php - zend框架3支持zftool吗?