私は以下のDBデザインを継承しました。テーブルは以下のとおりです。合計を得るために3つのテーブルのSQL JOIN、GROUP BY
customers
---------
customerid
customernumber
invoices
--------
invoiceid
amount
invoicepayments
---------------
invoicepaymentid
invoiceid
paymentid
payments
--------
paymentid
customerid
amount
私のクエリが与えられたCUSTOMERNUMBERため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'
どのように私はこの問題を解決することができますか?
1つの請求書に対していくつの請求書支払い行が存在する可能性がありますか? 各支払いIDにはいくつの支払いが存在する可能性がありますか? –