我正在处理发票和付款,我有 4 张桌子:
1. Client (Client Data i.e client_id, client_name)
2. Invoice (Invoice Data i.e invoice_no, client_id, invoice_date)
3. Invoice Data (invoice_no, product_name, qty, rate, tax)
4. Payment (Payment Data i.e invoice_no, paid_value, date)
我正在连接这些表,但没有得到正确的结果。以下是 MySQL 语句:
SELECT invoices.invoice_no, clients.company_name,
SUM((((invoices_data.qty * invoices_data.rate) * (invoices_data.cgst + invoices_data.sgst + invoices_data.igst))/100) + (invoices_data.qty * invoices_data.rate)) AS invoice_value,
SUM(payments.value) AS paid_value
FROM invoices
INNER JOIN clients ON invoices.client_id = clients.id
INNER JOIN invoices_data ON invoices.invoice_no = invoices_data.invoice_no
LEFT JOIN payments ON payments.invoice_no = invoices.invoice_no
GROUP BY invoices.invoice_no
结果我得到了什么:
invoice_no | company_name | invoice_value | paid_value
-------------------------------------------------------
INVML1 | RX Companies | 92978.1 | 6400
-------------------------------------------------------
INVML2 | Demo Client | 2540 | NULL
以上结果不正确,总发票金额为 30992.7,支付金额为 3200。请帮我解决这个问题