Получить последние детали транзакции от loanhist - PullRequest
0 голосов
/ 14 мая 2018

У меня есть таблица истории займов, которая содержит все займы, которые клиент позаимствовал и погасил. Существует два статуса (в одной строке), которые указывают на ссудный заем и погашение ссуды: LD = выдача ссуды, тогда как LP = ссуда выплаченная.

Моя проблема в том, что я пытаюсь найти:

  1. непогашенный остаток (сумма (основная сумма + проценты) в ЛД - сумма (основная сумма + проценты) в ЛП)
  2. Сумма взноса (сумма (основная сумма + проценты)) в LD
  3. СУММА всех ЛД, т.е. основной суммы + проценты в качестве суммы кредита
  4. Дата последнего погашения, т. Е. В LP
  5. Уплаченная сумма (основная сумма + проценты) в LP

Структура таблицы

enter image description here

Это мое решение до сих пор:

для LP

$amtdues = "select h.ac_no, loan_amt, MAX(trx_date) AS Last_Pay, MAX(principal+interest) as Last_Paid,  disb_date, exp_date,  principal+interest as loan_interest, MAX(principal-interest) as outstanding_balance, trx_date as payment_date from loanhist h, loans l where h.ac_no = '$id' and l.ac_no = '$id' and trx_type = 'LP' group by trx_date, loan_amt, disb_date, exp_date, h.ac_no, interest, principal, trx_date ";

$amts = sqlsrv_query($conn, $amtdues);

$lp = sqlsrv_fetch_array($amts, SQLSRV_FETCH_ASSOC);

Для LD

$amtdues2 = "select h.ac_no, loan_amt, MAX(trx_date) AS Last_Pay, disb_date, exp_date,  principal+interest as loan_interest, MAX(interest+principal) as outstanding_balance, MAX(interest+principal) as installment, trx_date as payment_date from loanhist h, loans l where h.ac_no = '$id' and l.ac_no = '$id' and trx_type = 'LD' group by trx_date, loan_amt, disb_date, exp_date, h.ac_no, interest, principal, trx_date ";

$amts2 = sqlsrv_query($conn, $amtdues2);
$ld = sqlsrv_fetch_array($amts2, SQLSRV_FETCH_ASSOC);

Мой вывод в html

<td><?php echo parseCurrency(abs($lmts['loan_limit']));?></td>
 <td><?php echo parseCurrency(abs($ld['loan_interest']));?></td>
 <td><?php echo parseCurrency(abs($ld['outstanding_balance'] - $lp['outstanding_balance']));?> </td>
 <td><?php echo parseCurrency(abs($ld['installment']));?></td>

После того, как я попробовал эти запросы, я получил неправильные значения. Может ли кто-нибудь помочь сестре?

1 Ответ

0 голосов
/ 14 мая 2018

Основываясь на информации таблицы для loanhist и делая некоторые предположения о том, что находится в loans (и что есть отношение 1: много от loans до loanhist), я думаю, что этот запрос начнет вас с в правильном направлении.

SELECT l.ac_no, 
       l.loan_amt,
       l.disb_date, 
       l.exp_date,  
       SUM(CASE WHEN trx_type='LD' THEN h.principal+h.interest ELSE 0 END) -
         SUM(CASE WHEN trx_type='LP' THEN h.principal+h.interest ELSE 0 END) AS outstanding_balance,
       MAX(CASE WHEN trx_type='LD' THEN h.principal+h.interest ELSE 0 END) AS instalment_amount,  
       SUM(CASE WHEN trx_type='LD' THEN h.principal+h.interest ELSE 0 END) AS loan_amount,
       MAX(CASE WHEN trx_type='LP' THEN trx_date ELSE NULL END) AS last_payment_date,
       SUM(CASE WHEN trx_type='LP' THEN h.principal+h.interest ELSE 0 END) AS amount_paid
FROM loans l
JOIN loanhist h
ON h.ac_no = l.ac_no
WHERE l.ac_no = '$id'
GROUP BY l.ac_no, l.loan_amt, l.disb_date, l.exp_date
...