Мне нужно получить сумму поля, которое существует в 4 таблицах, например, в моей основной таблице, используя уникальный идентификатор поля.
Мне нужно объединить мою основную таблицу с 3 дополнительными таблицами, чтобы получить сумму уровнязначения, соединяющиеся по идентификатору соединения.Я пытался использовать левые соединения, но результаты не такие, как ожидалось
select m.ID
, (ISNULL(s.LEVEL,0) + ISNULL(g.LEVEL,0) + ISNULL(p.LEVEL,0)) as
Sum_Levels from PRIMARYTABLE m
left join SPIPE s on m.JID = s.FJID
left join GPIPE g on m.JID = g.FID
left join PPIPE p on m.JID = p.FJID
PRIMARYTABLE
--------
ID JID
1 A
SPIPE
-----
FJID LEVEL
A NULL
PPIPE
-----
FJID LEVEL
A 2.01
GPIPE
------
FJID LEVEL
A 1.53
Expected Output
---------------
ID Sum_Levels
1 3.54
Я ожидал, что количество записей в моих выходных данных будет таким же, как в моей основной таблице, то есть 1,2 миллиона.Вместо этого я получаю более 15 миллионов строк, и выполнение запроса занимает слишком много времени