gpt4 book ai didi

mysql - 如何对列求和,并根据 SQL 中的条件将其连接到另一个表?

转载 作者:行者123 更新时间:2023-11-29 02:38:50 24 4
gpt4 key购买 nike

我在 SQL 中有两个表,一个包含 product_id、products_name、department_name 和 product_sales,另一个包含 department_id、department_name 和 over_head_costs。

我希望能够找到所有销售额的总和(按表 1 中的 department_name 分组)并从表 2 中减去 over_head_costs,以便我知道一个部门的盈利情况。然后我想输出这样的信息:department_id、department_name、over_head_costs、产品/部门销售额、total_profit。

我已经搜索了大约 2-3 个小时。我搞砸了连接(我很确定是如何解决这个问题)并找到了 SUM 函数,它实现了求和(但不是按部门),老实说,即使我看到了解决方案我也不会知道。我真的很难理解 SQL。

SELECT SUM(products.product_sales), department_id, departments.department_name, over_head_costs 
FROM products, departments
WHERE products.department_name = departments.department_name;

这是我最近的查询,也是我得到的最接近的查询,除了它只返回一个部门(我目前有 3 个部门)。

这大概是我想要的样子:

表 1(产品):

ID    ITEM         DEPARTMENT                SALES

1 Hammer Tools 40

2. Nails Tools 40

3. Keyboard Computer 80

表2(部门):

ID    DEPARTMENT    COST

1 Tools 20

2. Computer 30

输出:

ID    DEPARTMENT    COST     SALES      PROFIT

1 Tools 20 80 60

2. Computer 30 80 50

我不太确定还能尝试什么。我想我只是不了解连接和此类工作的方式。任何帮助将不胜感激。

最佳答案

您可以尝试在子查询中使用 SUMgroup by。然后执行加入

查询 1:

SELECT d.*,
t1.SALES,
(t1.SALES - d.COST)PROFIT
FROM (
SELECT DEPARTMENT,SUM(SALES) SALES
FROM products
GROUP BY DEPARTMENT
) t1 JOIN departments d on d.DEPARTMENT = t1.DEPARTMENT

Results :

| DEPARTMENT | COST | SALES | PROFIT |
|------------|------|-------|--------|
| Tools | 20 | 80 | 60 |
| Computer | 30 | 80 | 50 |

关于mysql - 如何对列求和,并根据 SQL 中的条件将其连接到另一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57504758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com