我正在构建一个 MySQL 查询,但我似乎无法正确处理。
我有四个表:
- 客户
- 订单
- sales_rates
- purchase_rates
客户和订单之间存在 1:n 关系“customernr”。
订单和 sales_rates 之间存在 1:n 关系“ordernr”。订单和purchase_rates 之间存在1:n 关系“ordernr”。
我想做的是产生所有客户的总购买和销售金额的输出。
到目前为止,我有以下查询。
SELECT c.customernr, c.customer_name, SUM(sr.sales_price) AS sales_price, SUM(pr.purchase_price) AS purchase_price
FROM orders o, customers c, sales_rates sr, purchase_rates pr
WHERE o.customernr = c.customernr
AND o.ordernr = sr.ordernr
AND o.ordernr = pr.ordernr
GROUP BY c.customer_name
sales_price 和 purchase_price 的结果太高了。我似乎得到了双重计数。我究竟做错了什么?是否可以在单个查询中执行此操作?
感谢您的回复!