Problem:
Find the net balance of the total order amount and total payments for each customer.
There are 4 tables involved: OrderDetails
, Orders
, Payments
and Customer
.
The total amount order = quantity order * price each [in OrderDetails]
The total payment = sum of different payments for the same order.
Customers
are linked to Payments
and Orders
with CustomerNumber
. Orders
are linked to OrderDetails
with OrderNumber
.
I tried joining the 4 tables with the INNER JOIN
function.
SELECT
c.customername,
SUM(od.quantityordered * od.priceeach) - SUM(p.amount) AS Net_Balance
FROM
(
(
orderdetails od
INNER JOIN orders o ON od.ordernumber = o.ordernumber
)
INNER JOIN customers c ON o.customernumber = c.customernumber
)
INNER JOIN payments p ON c.customernumber = p.customernumber
GROUP BY c.customername;
The expected results should be 0 for almost every customers.
However, what I have got is the total amount order and total payment are multiplied by some constants. Specifically, the total payment shown is multiplied by the number of payments for each order.
Anybody have any ideas to save my life?