2017-08-04 43 views
0

我的数据库中有三个表。 首先表 - insurance_policy,二单insurance_customer &第三单insurance_paymentsCodeigniter加入多个表和总和

我试图与特定的日期范围,从策略表中的数据,同时试图拉从客户表中的客户信息&终于设法得到该政策的付款信息。

这里是那么远

$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] => [email protected] 
     [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] => [email protected] 
     [id] => 4 
     [Policy_Number] => 26 
     [Date] => 08/15/2017 
     [Amount] => 200.10 
     [status] => 1 
    ) 
) 

回答

0

也许

$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();