Весь вопрос не читал, но для повторяющихся значений при джоине происходит умножение строк, условно для двух таблиц:
А, А1
А, А2
и
А, Б1
А, Б2
при джоине по первой колонке на выходе получим
А, А1, Б1
А, А2, Б1
А, А1, Б2
А, А2, Б2
и sum по какому-то числу даст кратно бОльший результат.
Решением может быть переход на union all или предварительная очистка от дублей (если возможна), например предварительная аггрегация перед джоином. Вариант с union предпочтительнее, потому что работает чаще быстрее и для восприятия будет скорее всего проще.