Выбор суммы Размещенного займа и Безналичного займа за тот же день в представленной таблице - PullRequest
0 голосов
/ 14 июня 2019

Я создаю приложение, в котором хранится информация о ссуде пользователя, но проблема заключается в том, как выбрать сумму размещенного и погашенного кредита за тот же день; например, если пользователь разместил кредит в 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 
-------------------------------------------------------------------------- 

Например, пользователь с ID 2 19/6/14 разместил ссуду в 2000,00 и очистил ссуду в 3000,00, то есть сумма займа, размещенная 19/6/14 и очищенная 19/6 / 14 для пользователя 2 - 2000,00; и оставшиеся 1000,00 были 19/6/12.

Как я могу выбрать эти данные?

Ответы [ 3 ]

0 голосов
/ 14 июня 2019

Попробуйте этот запрос

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
  • Результат 1
  • Данные 2
0 голосов
/ 15 июня 2019

Спасибо всем, кто принимал участие в решении моей проблемы:

 $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
0 голосов
/ 14 июня 2019

Вычтите заем, размещенный-выровненный до даты. Затем вычтите это из очищенной даты.

    $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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...