我的数据库中有三个表。 第一个表 - 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/