mysql - Codeigniter 连接多个表并求和

标签 mysql codeigniter join

我的数据库中有三个表。 第一个表 - Insurance_policy,第二个表 - Insurance_customer,第三个表 - Insurance_ payments

我正在尝试从特定日期范围的保单表中获取数据,同时尝试从客户表中提取客户信息,最后尝试获取该保单的付款信息。

这是到目前为止的代码-

$this->db->select('*');
$this->db->from('insurance_policy');
$this->db->join('insurance_customer', 'insurance_customer.customer_id = insurance_policy.Customer_ID', 'left');
$this->db->join('insurance_payments', 'insurance_payments.Policy_Number = insurance_policy.Policy_ID', 'left');
$this->db->where('insurance_policy.Payment_Date >=', $from);
$this->db->where('insurance_policy.Payment_Date <=', $to);

$query = $this->db->get();
return $query->result_array();

我正在尝试从付款表中获取“金额总和”列,而不是返回所有记录。由于支付数据可以是多个具有相同保单 ID 的数据,因此我得到了多个支付数据结果,如下所示。相反,我尝试为每个保单 ID 获取一个结果(由于该保单 ID 的多次付款而不会重复)以及该保单的付款表中的金额总和。

提前致谢。

Array
(
[0] => Array
    (
        [Policy_ID] => 26
        [Policy] => 1234
        [Customer_ID] => 30
        [Effective_Date] => 06/08/2016
        [Expiration_Date] => 06/08/2017
        [Insurer] => Lorem
        [Billing] => Lorem
        [Agent] => Lorem
        [Notes] => Lorem
        [Mail_Date] => 
        [Callback_Date] => 
        [Contact_Date] => 
        [Type] => Lorem
        [Policy_Total] => 140
        [Commission_Amount] => 0
        [Brokerage_Fee] => 0
        [Insurance_Price] => 140
        [Payment_Date] => 06/08/2016
        [Cancellation_Date] => 
        [Paid_in_Full] => 0
        [customer_id] => 30
        [First_Name] => Lorem
        [Last_Name] => Lorem
        [Company_Name] => Lorem
        [Company_Type] => Lorem
        [EIN_Number] => 
        [Fee_License] => 1234
        [Address] => Lorem
        [City] => Lorem
        [State] => CA
        [Zipcode] => 12345
        [Phone] => 123-456-7890
        [Alt_Number] => 
        [Fax_Number] => 
        [Email] => user@hotmail.com
        [id] => 8
        [Policy_Number] => 26
        [Date] => 08/16/2017
        [Amount] => 400
        [status] => 1
    )

[1] => Array
    (
        [Policy_ID] => 26
        [Policy] => 1234
        [Customer_ID] => 30
        [Effective_Date] => 06/08/2016
        [Expiration_Date] => 06/08/2017
        [Insurer] => Lorem
        [Billing] => Lorem
        [Agent] => Lorem
        [Notes] => 
        [Mail_Date] => 
        [Callback_Date] => 
        [Contact_Date] => 
        [Type] => Lorem
        [Policy_Total] => 140
        [Commission_Amount] => 0
        [Brokerage_Fee] => 0
        [Insurance_Price] => 140
        [Payment_Date] => 06/08/2016
        [Cancellation_Date] => 
        [Paid_in_Full] => 0
        [customer_id] => 30
        [First_Name] => Art
        [Last_Name] => Lorem
        [Company_Name] => Lorem
        [Company_Type] => Lorem
        [EIN_Number] => 
        [Fee_License] => 55555
        [Address] => Lorem
        [City] => Lorem
        [State] => CA
        [Zipcode] => 12345
        [Phone] => 333-444-5555
        [Alt_Number] => 
        [Fax_Number] => 
        [Email] => user@hotmail.com
        [id] => 4
        [Policy_Number] => 26
        [Date] => 08/15/2017
        [Amount] => 200.10
        [status] => 1
    )
)

最佳答案

也许

$this->db->select('SUM(insurance_policy.Policy_Total)');//changed
$this->db->from('insurance_policy');
$this->db->join('insurance_customer', 'insurance_customer.customer_id = 
insurance_policy.Customer_ID', 'left');
$this->db->join('insurance_payments', 'insurance_payments.Policy_Number = insurance_policy.Policy_ID', 'left');
$this->db->where('insurance_policy.Payment_Date >=', $from);
$this->db->where('insurance_policy.Payment_Date <=', $to);
$this->db->group_by("Policy_ID");//added

$query = $this->db->get();
return $query->result_array();

关于mysql - Codeigniter 连接多个表并求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45516113/

相关文章:

jquery - $(a,this).attr ('href' ) 返回未定义

mysql - Sql MAX()函数评分电影

php - 为什么这个测试 SQL 注入(inject)没有返回表中的所有行?

php - codeigniter:如何将数组的值放入特定的表列中?

codeigniter - 将 OAuth 2.0 与 CodeIgniter 集成

php - 如何制作多表到一张表的join语句?

mysql - 索引在mysql中对性能的作用

PHP PDO SQL 只返回一行数据而不是所有行

php - SQL 删除与连接

php - SQL 查询从两个相互关联的表中提取记录 - 表 2 取决于表 1