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

标签 mysql

我在 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/

相关文章:

php - MySQL 一列等于另一列?

jquery - 通过选中多个复选框来查询 MySQL,并自动更新

MySQL 结果由存储过程中的多行组成

mysql - 营地 : how I can get localhost page (with big xampp logo)

php - 在 phpmyadmin 中使用 session 变量创建表

java - Hibernate HQL 中的 SQL 计数

mysql - Prestashop 数据库的相反 SQL 查询 |显示不在仓库中的产品

mysql 枢轴/交叉表查询

mysql - 使用 EXPLAIN 输出优化慢速 MySQL 查询

PHP/MySQL删除记录不删除