[英]SQL - How to get total sum based on two tables?
因此,我有两个表,一个是公司订单( order id
, customer name
, sum
),另一个是债务( order id
),其中包括尚未支付的订单。 我需要让total debt
最大的客户。 有些客户已下达1个以上的订单。 最好的解决方案是什么? 非常感谢你!
订单表:
CREATE TABLE orders( order_id INT PRIMARY KEY, name VARCHAR(30), sum INT );
INSERT INTO orders VALUES
(1, 'Jack Smith', 123),
(2, 'Mary Jane', 61),
(3, 'John McCane', 90),
(4, 'Jack Smith', 512),
(5, 'Mary Jane', 33);
债务表:
CREATE TABLE debts( order_id INT PRIMARY KEY );
INSERT INTO debts VALUES
(1),(4),(5);
现在我有这样的事情:
SELECT name,SUM(sum) FROM orders INNER JOIN debts ON orders.order_id = debts.order_id GROUP BY name;
+------------+----------+
| name | SUM(sum) |
+------------+----------+
| Jack Smith | 635 |
| Mary Jane | 33 |
+------------+----------+
所需的结果如下所示:
name sum
Jack Smith 635
Mary Jane 94
John McCane 90
select name,sum from orders o inner join debts d on o.order_id = d.order_id order by o.sum desc
将给您所有债务降序排列的客户。 如果您希望债务最高的客户增加limit 1
select name,sum from orders o inner join debts d on o.order_id = d.order_id order by o.sum desc limit 1
从ID为IN的orders
选择SUM(sum)(从债务中选择order_id)
这可能对您有帮助
这就是我想要的:
SELECT name,SUM(sum) FROM orders INNER JOIN debts ON orders.order_id = debts.order_id GROUP BY name;
谢谢大家的回答。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.