繁体   English   中英

SQL-如何获取基于两个表的总和?

[英]SQL - How to get total sum based on two tables?

因此,我有两个表,一个是公司订单( order idcustomer namesum ),另一个是债务( 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM