выберите предыдущие строки и рассчитайте - PullRequest
1 голос
/ 11 февраля 2011

У меня есть две таблицы

  1. Кредит
  2. Loan_Payments

in MS Access

Кредит включает

  1. Ref_Loan
  2. Сумма_Loan

Loan_Payments включает

  1. Ref_Loan
  2. Amount_Paid
  3. Дата

Таблица ссуд

Ref_Loan    Loan_Amount
loan 1      12000
loan 2      24000
loan 3      5000 

Loan_Payments

Ref_Loan Amount_Paid Date
loan 1     1000    01/01/2011
loan 1     1000    01/02/2011
loan 1     1000    01/03/2011
loan 2     1000    01/01/2011
loan 2     1000    01/02/2011

Я хочу выход, который будет отображаться так:

Ref_loan    Amount_Paid    Date      Balance
loan 1      1000         01/01/2011  11000
loan 1      1000         01/02/2011  10000
loan 1      1000         01/03/2011   9000
loan 2      1000         01/01/2011  23000
loan 2      1000         01/02/2011  22000
loan 3                                5000

1 Ответ

0 голосов
/ 11 февраля 2011

Запрос доступа:

select L.Ref_Loan, P.Amount_Paid, P.Date,
    L.Loan_Amount - DSum("Amount_Paid", "Loan_Payment",
    "Ref_Loan=" & L.Ref_Loan & " AND Date<= #" & Format(P.Date, "yyyy/mm/dd") & "#")
from Loan AS L
left join Loan_Payments AS P on P.Ref_Loan = L.Ref_Loan
ORDER BY L.Ref_Loan, P.Date

Однако, если вы используете Jet из C #, DSum может не работать. В этом случае запишите правильный SQL полностью

select L.Ref_Loan, P.Amount_Paid, P.Date,
    L.Loan_Amount - (
        SELECT SUM(P2.amount_paid)
        FROM Loan_Payment AS P2
        WHERE P2.Ref_Loan=L.Ref_Loan
        AND P2.Date <= P.Date)
from Loan AS L
left join Loan_Payments AS P on P.Ref_Loan = L.Ref_Loan
ORDER BY L.Ref_Loan, P.Date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...