Проблема:
Найдите чистый баланс общей суммы заказа и общей суммы платежей для каждого клиента.
Задействовано 4 таблицы: OrderDetails
, Orders
, Payments
и Customer
.
Общая сумма заказа = количество заказа * цена каждого [в OrderDetails]
Общий платеж = сумма разных платежей за один и тот же заказ.
Customers
связаны с Payments
, а Orders
с CustomerNumber
. Orders
связаны с OrderDetails
через OrderNumber
.
Я попытался объединить 4 таблицы с помощью функции INNER JOIN
.
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;
Ожидаемые результаты должны быть равны 0 почти для всех клиентов.
Однако то, что у меня есть, - это общая сумма заказа и общая оплата, умноженные на некоторые константы. В частности, показанная общая сумма платежа умножается на количество платежей по каждому заказу.
У кого-нибудь есть идеи, как спасти мою жизнь?