У меня есть три таблицы следующим образом:
Таблица LoanMaster
LoanID BranchName DisbursementDate DisbursementAmount
12345 H1 01-01-18 25000
12346 A1 05-01-18 20000
12347 M1 06-02-18 16000
Коллекционная таблица
LoanID TransactionDate Amount
12345 05-02-18 500
12346 06-02-18 600
Таблица просроченной коллекции
LoanID TransactionDate Amount
12345 05-02-18 200
12346 07-02-18 300
Требуемый вывод
LoanID BranchName TransactionDate Collection Amount Overdue Amount
12345 H1 05-02-18 500 200
12346 A1 06-02-18 600 NULL
12346 A1 07-02-18 NULL 300
12347 M1 NULL NULL NULL
я применил следующие два запроса, чтобы объединить две таблицы
"QRY_Test2":
SELECT c.LoanID LoanID, date(c.TransactionDate) TransDate, (c.Amount) Amt,
d.Amount = NULL FROM Collection c
UNION
SELECT d.LoanID LoanID, date(d.TransactionDate) TransDate, c.Amount = NULL,
(d.Amount) as Amt FROM Overdue Amount d
а затем сгруппируйте, чтобы получить уникальные результаты с именем finalTable:
SELECT LoanID, TransDate, sum("Amount"), sum("Amt") FROM "QRY_Test2"
GROUP BY LoanID, TransDate
то я получаю следующий результат:
LoanID TransactionDate Collection Amount Overdue Amount
12345 05-02-18 500 200
12346 06-02-18 600 NULL
12346 07-02-18 NULL 300
Затем, если я применяю левое соединение с LoanMaster, я не получаю никаких результатов:
Select LoanID, BranchName, TransactionDate, CollectionAmount, OverdueAmount from LoanMaster lm LEFT JOIN on FinalTable f lm.LoanID = f.loanid
Просто хотел понять, в чем проблема, и мне нужен вышеупомянутый требуемый результат.