我有以下示例数据和所需的输出,我编写的 SQL 查询并没有完全产生我正在寻找的结果,我不明白为什么。我尝试过不同的分组,聚合或不聚合“单位”列,但似乎没有任何效果。任何帮助将不胜感激。
样本数据:
SQL:
WITH AggregatedEarnedHours AS (
SELECT
WBS,
ActivityID,
Period_WE,
SUM(EarnedMH_I) AS EarnedHours
FROM
EarnedQ
GROUP BY
WBS,
ActivityID,
Period_WE
),
AggregatedPlannedHours AS (
SELECT
AID,
EOW2 AS Period_WE,
SUM(Units) AS PlannedHours
FROM
PlannedQ T
JOIN PeriodQ P ON T.Weekending = P.Period_WE
GROUP BY
AID,
EOW2
)
SELECT
E.WBS,
E.ActivityID,
E.Period_WE,
SUM(E.EarnedHours) AS EarnedHours,
ISNULL(P.PlannedHours, 0) AS PlannedHours
FROM
AggregatedEarnedHours E
LEFT JOIN AggregatedPlannedHours P ON E.ActivityID = P.AID AND E.Period_WE = P.Period_WE
GROUP BY
E.WBS,
E.ActivityID,
E.Period_WE,
P.PlannedHours
HAVING (SUM(E.EarnedHours) != 0 OR SUM(P.PlannedHours) !=0) AND
SUM(E.EarnedHours) > 0