Один и тот же вопрос задавался несколько раз, но ни один из ответов не помог в этой ситуации, поэтому снова задайте вопрос.
У меня есть 3 таблицы Клиенты, счета, inv_pay. Я хочу создать запрос, который возвращает (идентификатор клиента из таблицы клиентов) И (Final_money из таблицы счетов-фактур) И (сумма из таблицы inv_pay).
проблема заключается в том, что при выполнении запроса я получаю Дублированные строки из 2 вкладки. Мои таблицы:
Таблица данных клиентов:
ID cname ccity cdate
248 marcos city 03/11/2019
Данные таблицы счетов:
ID cust_id Final_money ddate
1 248 ₪10,000 19/03/2020
2 248 ₪5,000 19/03/2020
Данные таблицы inv_pay :
ID cust_id amount ddate
695 248 ₪5,000 19/03/2020
696 248 ₪2,500 19/03/2020
Запрос-> SQL:
SELECT Customers.ID, invoices.Final_money, inv_pay.amount
FROM (Customers LEFT JOIN inv_pay ON Customers.ID = inv_pay.cust_id) LEFT JOIN invoices ON Customers.ID = invoices.cust_id
GROUP BY Customers.ID, invoices.Final_money, inv_pay.amount;
Результат, полученный по запросу:
ID Final_money amount
248 ₪5,000 ₪2,500
248 ₪5,000 ₪5,000
248 ₪10,000 ₪2,500
248 ₪10,000 ₪5,000
Как я могу получить запись запроса без дублированных строк, что я хочу:
ID Final_money amount
248 ₪5,000 ₪2,500
248 ₪10,000 ₪5,000
Только записи из таблицы счетов и Таблица inv_pay.
взаимосвязь между 3 таблицами - это Customer Id (идентификатор в таблице Customers) (cust_id в счетах и pay_inv) 1 для многих.
Все, что я пытаюсь сделать, это получить сумму для final_money и сумму для inv_pay для всех значений счетов клиентов и значений платежей.