[英]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.