簡體   English   中英

如何對一列求和,並根據 SQL 中的條件將其連接到另一個表?

[英]How do I sum a column, and join it to another table based on a condition in SQL?

我在 SQL 中有兩個表,一個包含 product_id、products_name、department_name 和 product_sales,另一個包含 Department_id、department_name 和 over_head_costs。

我希望能夠找到所有銷售額的總和(按表 1 中的部門名稱分組)並從表 2 中減去 over_head_costs,以便我知道部門的盈利能力。 然后我想輸出這樣的信息:department_id、department_name、over_head_costs、product/department sales、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

我不確定還有什么要嘗試的。 我想我只是不明白如何加入和這樣的工作。 任何幫助將不勝感激。

您可以嘗試在子查詢中使用SUM group by 然后join

查詢 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

結果

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM