我在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
表二(部门):
ID DEPARTMENT COST
1 Tools 20
2. Computer 30
输出:
ID DEPARTMENT COST SALES PROFIT
1 Tools 20 80 60
2. Computer 30 80 50
我真的不确定还能尝试什么。我想我只是不明白joins是如何工作的。任何帮助都将不胜感激。
发布于 2019-08-15 13:16:58
您可以尝试在子查询中使用带有group by
的SUM
。然后执行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 |
https://stackoverflow.com/questions/57504758
复制相似问题