当我在两个表中输入一条记录时,如果我在第二个塔尔插入第二条记录,则总金额是可以的,那么总金额将翻倍



亲爱的所有朋友,我是Codeigniter框架的新手,我想要通过选择两个表数据来获得总量,问题是当我在第二个表中输入数据时,总数将翻倍。

function total_amount($booking_no = NULL)
{
    $data  = array('forwarding_cargo_booking_details.*',
                   'other_charges.client_amount');

    $this->db->select($data);
    $this->db->where('forwarding_cargo_booking_details.booking_no',$booking_no);
    $this->db->join('other_charges','forwarding_cargo_booking_details.booking_no = other_charges.booking_no','left');
    $this->db->select('sum((`bk_m3`*`o_freight_client`)*(`selling_rate`)+`pod_client`+`thc_client`+`caf_client`+`baf_client`+`haulage_client`+`war_risk_client`+`warehouse_client`+`thc_dest_client`+`pp_surcharge_client`+`doc_charges_client`+`client_amount`) as salam', FAlSE);
    $query = $this->db->get('forwarding_cargo_booking_details');            
    if($query->num_rows() > 0)
    {
        return $query->row();
    }
}

把它改成这样。这里使用derieved查询并测试它是否正常工作

function total_amount($booking_no = NULL)
{
    $sql_query  =   "SELECT
                        forwarding_cargo_booking_details.*,
                        other_charges.client_amount,
                        sum((`bk_m3`*`o_freight_client`)*(`selling_rate`)+`pod_client`+`thc_client`+`caf_client`+`baf_client`+`haulage_client`+`war_risk_client`+`warehouse_client`+`thc_dest_client`+`pp_surcharge_client`+`doc_charges_client`+`client_amount`) as amount
                    FROM forwarding_cargo_booking_details 
                    LEFT JOIN (SELECT booking_no , sum(client_amount) FROM other_charges group by booking_no) as other_charges ON forwarding_cargo_booking_details.booking_no = other_charges.booking_no
                    ";
    $query = $this->db->query();   
    if($query->num_rows() > 0)
    {
        return $query->row();
    }
}
使用此

代码打印查询,并检查查询。

$this->db->last_query();

我想你忘了在查询中使用"分组依据"

最新更新