SQL:将表A中的数据总和(依赖于表B)放入按表B排列的表C中(提供示例数据)



基本上,我必须根据部门对表 2 中的人员进行分组(仅通过参考表 1 知道),然后根据类型(通过表 2 知道)对每个部门求和。结果必须按部门分组(通过表1知道)。

任何人都可以帮助我在SQL中执行这样的操作吗?

示例数据:

Table 1
DeptID | Dept
1      | Eng
2      | Mkt
3      | Mkt
4      | Eng
Table 2
Person | DeptID | Type | Amount
A      | 1      | p1   | 5
B      | 2      | p2   | 3
C      | 3      | p1   | 10
D      | 2      | p1   | 20
E      | 4      | p2   | 17
F      | 1      | p2   | 15
G      | 2      | p1   | 16
Table Results
Dept | Sum p1 |  Sum p2
Eng  | 5      | 32
Mkt  | 46     | 3

您可以使用条件聚合来执行此操作。

SELECT
    t1.Dept,
    [Sum p1] = SUM(CASE WHEN t2.Type = 'p1' THEN t2.Amount END),
    [Sum p2] = SUM(CASE WHEN t2.Type = 'p2' THEN t2.Amount END)
FROM Table2 t2
INNER JOIN Table1 t1
    ON t1.DeptID = t2.DeptID
GROUP BY 
    t1.Dept

最新更新