Я унаследовал следующий дизайн БД. Таблицы:
customers
---------
customerid
customernumber
invoices
--------
invoiceid
amount
invoicepayments
---------------
invoicepaymentid
invoiceid
paymentid
payments
--------
paymentid
customerid
amount
Мой запрос должен вернуть invoiceid, сумму счета (в таблице счетов) и причитающуюся сумму (сумма счета за вычетом любых платежей, которые были сделаны по счету) для данного номера клиента. У клиента может быть несколько счетов-фактур.
Следующий запрос дает мне повторяющиеся записи, когда по счету производится несколько платежей:
SELECT i.invoiceid, i.amount, i.amount - p.amount AS amountdue
FROM invoices i
LEFT JOIN invoicepayments ip ON i.invoiceid = ip.invoiceid
LEFT JOIN payments p ON ip.paymentid = p.paymentid
LEFT JOIN customers c ON p.customerid = c.customerid
WHERE c.customernumber = '100'
Как я могу это решить?