无法对信息进行分组 SQL

having trouble grouping information SQL

我无法将两个表中的一些信息分组以比较信息。

我有两张桌子

Baseline
|ResourceGroup    Unit     TotalUnits|
|Mechanic           50            600|
|Electric           50            600|
|Mechanic           52            600|
|Electric           52            600|    

Actual
|ResourceGroup    Unit     TotalUnits|
|Mechanic           50            500|
|Electric           50            500|
|Mechanic           52            500|
|Electric           52            500|    

我想看的是:

|ResourceGroup    Baseline.TotalUnits  Actual.TotalUnits|
|Mechanic                    1200                   1000|
|Electric                    1200                   1000|

我正在尝试使用以下查询,但它似乎不起作用。我想我错过了什么。谁能看出我哪里出错了?

SELECT Baseline.ResourceGroup, Baseline.TotalUnits, Actual.TotalUnits 
INNER JOIN Baseline.ResourceGroup = Actual.ResourceGroup
GROUP BY ResourceGroup;

这两个表的交叉连接将为每个 ResourceGroup 提供 2x2=4 行,这意味着您将拥有 4 行 Mechanic 数据和 4 行 Electric 数据。在你已经加入他们之后分组会给你不匹配的值。

解决方案是将这些表单独分组,然后连接结果表。这将为您提供以下两个需要按 ResourceGroup 列加入的表:

Baseline
|ResourceGroup    TotalUnits|
|Mechanic           1200|
|Electric           1200|

Actual
|ResourceGroup     TotalUnits|
|Mechanic           1000|
|Electric           1000|

找出以下 sql 语句:

SELECT
    A.ResourceGroup,
    A.TotalUnits as BaselineTotalUnits,
    B.TotalUnits as ActualTotalUnits
FROM (SELECT ResourceGroup, SUM(TotalUnits) as TotalUnits FROM Baseline GROUP BY ResourceGroup) A
JOIN (SELECT ResourceGroup, SUM(TotalUnits) as TotalUnits FROM Actual GROUP BY ResourceGroup) B
    ON A.ResourceGroup = B.ResourceGroup