我遇到了從單個SQL語句中的多個表中提取Sum的問題。從多個表中獲取總和
我有三個表tblCases,tblTimesheetEntries和tblInvoices tblCases和其他兩個表之間有一對多的關係。
我使用下面的SQL語句,此刻
SELECT c.CaseNo, SUM(i.InvFees), SUM(t.Fees)
FROM tblCases AS c
INNER JOIN tblInvoices AS i ON c.CaseNo = i.CaseNo
INNER JOIN tblTimesheetEntries AS t ON c.CaseNo = t.CaseNo
GROUP BY c.CaseNo
ORDER BY c.CaseNo;
不過,這似乎重複發票金額。例如,如果案例中只有一張發票,但說4個時間表條目,它會計算4 x發票金額作爲該表的總和。
如果我參加了分組並運行下面的SQL來代替:
SELECT c.CaseNo, i.InvFees, t.Fees
FROM tblCases AS c
INNER JOIN tblInvoices AS i ON c.CaseNo = i.CaseNo
INNER JOIN tblTimesheetEntries AS t ON c.CaseNo = t.CaseNo
ORDER BY c.CaseNo;
我可以看到這種情況的發生,因爲所有的4線重複發票金額如
Case 1001, Inv 001 950.00, TimeFees 250.00
Case 1001, Inv 001 950.00, TimeFees 175.00
Case 1001, Inv 001 950.00, TimeFees 225.00
Case 1001, Inv 001 950.00, TimeFees 190.00
所以總的發票是發票的四倍量001
我想從上面的數據恢復是一個單一的總和行:
Case 1001, Total Invoices 950.00, Total TimeFees 840.00
怎麼辦我在總結中避免了這種重複?
我修改後展現樣的結果我之後。 – PJW