Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在提供的表格中选择当日已发放贷款和已清算贷款的金额_Php_Mysql_Codeigniter - Fatal编程技术网

Php 在提供的表格中选择当日已发放贷款和已清算贷款的金额

Php 在提供的表格中选择当日已发放贷款和已清算贷款的金额,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在构建一个保存用户贷款信息的应用程序,但问题是如何选择当天发放和清算的贷款金额;例如,如果用户在上午7:00放置贷款,并在当天下午13:00清算,我如何在当天放置和清算此贷款 我的示例表是: -------------------------------------------------------------------------- id | user_id | placed_loan | cleared loan | plcd date | cld_date | status ---

我正在构建一个保存用户贷款信息的应用程序,但问题是如何选择当天发放和清算的贷款金额;例如,如果用户在上午7:00放置贷款,并在当天下午13:00清算,我如何在当天放置和清算此贷款

我的示例表是:

--------------------------------------------------------------------------
id | user_id | placed_loan | cleared loan | plcd date | cld_date | status
--------------------------------------------------------------------------
1  |   2     |   5000.00   |    0.00      |  19/6/12 |          |   1 
2  |   2     |   0.00      |    4000.00   |          |  19/6/13 |   2
3  |   2     |   2000.00   |    0.00      |  19/6/14 |          |   1
4  |   3     |   4000.00   |    0.00      |  19/6/14 |          |   1
5  |   2     |   0.00      |    3000.00   |          | 19/6/14  |   2
6  |   3     |   0.00      |    2000.00   |          | 19/6/15  |   2 
-------------------------------------------------------------------------- 
例如,2014年6月19日ID为2的用户发放了2000.00的贷款,并结清了3000.00的贷款。也就是说,2014年6月19日发放的贷款金额为2000.00,而2014年6月19日结清的贷款金额为2000.00;剩下的1000.00是2012年6月19日


如何选择此数据?

减去日期前已清算的贷款。然后从当天的清仓款中减去

    $this->db->select('(SUM(placed_loan) - SUM(cleared_loan))');
    $this->db->where('user_id', $user_id);
    $this->db->where('plcd_date <', $date);
    $subquery = $this->db->get_compiled_select('yourtablename');
    $this->db->select("placed_loan, (cleared_loan - ($subquery)) as cleared_to_date");
    $this->db->where('user_id', $user_id);
    $this->db->where('plcd_date', $date);
    $q = $this->db->get('yourtablename');
    if ($q->num_rows() == 0) {
        die('no rows');
    }
    $res = $q->row();
    echo "placed: $res->placed_loan"; // 2000
    echo "cleared_to_date: $res->cleared_to_date"; // 2000
    exit;
请尝试此查询

SELECT A.id as id, A.user_id as userid , A.plcd_date as date , SUM(A.placed_loan) as loan_amt , SUM(B.cleared_loan) clr_amt FROM `user_loan` as A , `user_loan` as B WHERE A.plcd_date = B.cld_date GROUP BY A.plcd_date, A.user_id
后果 数据
感谢所有参与解决我问题的人:

 $data['financial_year_start'] = '2019-06-10';
        $data['recon_date'] = '2019-06-12';
        //$user_id = 1;
        $this->db->select('(SELECT SUM(placed_loan) FROM customers_loans WHERE loan_added_on >="'.$data['financial_year_start'].'" AND loan_added_on <"'.$data['recon_date'].'") AS plcd_before', FALSE);
        $this->db->select('(SELECT SUM(placed_loan) FROM customers_loans WHERE loan_added_on ="'.$data['recon_date'].'") AS plcd_today', FALSE);
        $this->db->select('(SELECT SUM(cleared_loan) FROM customers_loans WHERE loan_added_on >="'.$data['financial_year_start'].'" AND loan_added_on <"'.$data['recon_date'].'") AS cld_before', FALSE);
        $this->db->select('(SELECT SUM(cleared_loan) FROM customers_loans WHERE loan_added_on ="'.$data['recon_date'].'") AS cld_today', FALSE);
        $q = $this->db->get()->result_array();;


       $data['plcd_bbf'] = $q[0]['plcd_before'] - $q[0]['cld_before'];
       $data['plc_cld_today'] = $q[0]['cld_today'] - $data['plcd_bbf'];
       echo $data['plc_cld_today']; // This is the amount of loan placed and cleared on the same day

上午7点,下午13点?这些数据来自哪里?您提到今天是where,但您的示例通过选择2012年6月19日和2014年6月19日的事件与此相矛盾。根据你的例子,听起来日期似乎无关紧要,你只是想要一个特定id的用户的placed_loan-cleared_loan的结果??很抱歉今天这个词把你弄糊涂了;简单地说,我的目标是确定当天发放和再支付的贷款金额;感谢您澄清,对于14年6月19日的user2,结果将是-1000?2000位-3000位已清除到目前为止您尝试了什么?你到底被困在哪里?你好@NicoHaase;如表中所示,2014年6月19日,用户以3000.00的金额清算了贷款,但在同一天,他发放了2000的贷款;这意味着当天发放和清算的贷款金额仅为2000.00,其余1000.00用于支付2012年6月19日的剩余贷款;现在,如何通过查询获得2000.00的金额?感谢您的回复@Alex;但我的问题仍然存在;如表中所示,2014年6月19日,用户以3000.00的金额清算了贷款,但在同一天,他发放了2000的贷款;这意味着当天发放和清算的贷款金额仅为2000.00,其余1000.00用于支付2012年6月19日的剩余贷款;现在,如何通过查询获得2000.00的金额?谢谢。你好@Alex;我尝试过这个代码,但结果是0.00$date='2019-06-14'$用户id=1$此->数据库->选择“已发放贷款-已发放贷款为净额”$这->数据库->哪里'贷款'添加了'是的,我只是不知道你的公式。你能用数学写出它吗?我不确定2000-3000=2000,或者5000+2000-4000-3000=2000,我的意思是,从技术上讲,在13号之后,他只剩下1000英镑的贷款还清,然后他放了一笔贷款,然后在14号付清了所有的。。。因此净0