Получение DDL и примеров данных DML в вопросах облегчает предоставление быстрого решения. Кроме того, столбцы, используемые в вашем запросе, не полностью соответствуют предоставленному вами снимку экрана, поэтому я предоставляю эти подходы на основе предоставленного снимка экрана.
Подготовленные DDL и данные испытаний:
DROP TABLE IF EXISTS CostCategory;
GO
CREATE TABLE CostCategory
(
IDCostCategory INT
,CostCategory VARCHAR(10)
) ON [PRIMARY]
GO
INSERT INTO CostCategory
VALUES
(1, 'A'), (2, 'B'), (3, 'C')
GO
DROP TABLE IF EXISTS HumanResource;
GO
CREATE TABLE HumanResource
(
IDHR INT
,IDCostCategory INT
) ON [PRIMARY]
GO
INSERT INTO HumanResource
VALUES
(1, 1), (2, 2), (3, 2)
GO
DROP TABLE IF EXISTS HRPlan;
GO
CREATE TABLE HRPlan
(
IDHRPlan INT
,IDHR INT
,Amount INT
,Month INT
,Year INT
) ON [PRIMARY]
GO
INSERT INTO HRPlan
VALUES
(1, 1, 10 , 1, 2019)
, (2, 1, 12 , 2, 2019)
, (3, 1, 15 , 2, 2019)
, (4, 2, 50 , 1, 2019)
, (5, 2, 0 , 2, 2019)
, (6, 2, 100 , 3, 2019)
, (4, 3, 40 , 1, 2019)
, (5, 3, 50 , 2, 2019)
, (6, 3, 30 , 3, 2019)
GO
Для отслеживания производительности вы можете включить статистику ввода-вывода и времени:
SET STATISTICS IO ON;
SET STATISTICS TIME ON;
Решение 1 : Использование Outer Apply (лучшая производительность, чем у решения № 2 ниже)
SELECT CC.CostCategory, ISNULL(OA.Amount, 0)
FROM CostCategory CC
OUTER APPLY (
SELECT Amount = SUM(ISNULL(HP.Amount, 0))
FROM HRPlan HP
WHERE HP.Month BETWEEN 1 AND 3
AND HP.Year = 2019
AND EXISTS (
SELECT 1
FROM HumanResource HR
WHERE HR.IDCostCategory = CC.IDCostCategory
AND HR.IDHR = HP.IDHR
)
) OA;
Решение 2: Использование левого соединения
SELECT CC.CostCategory, ISNULL(SUM(HP.Amount), 0)
FROM CostCategory CC
LEFT JOIN HumanResource HR
ON CC.IDCostCategory = HR.IDCostCategory
LEFT JOIN HRPlan HP
ON HR.IDHR = HP.IDHR
AND HP.Month BETWEEN 1 AND 3
AND HP.Year = 2019
GROUP BY CC.CostCategory;
Примечание : - Вы можете подумать о создании индекса columnstore для таблицы HRPlan и создать индекс Rowstore / Columnstore для двух других таблиц, который охватывает соединения и выбранные столбцы для повышения производительности.