Когда вы выбираете с помощью DISTINCT, вы получаете различные значения. Любые двойники удаляются. Итак, если ваш запрос без DISTINCT вернет: 1, 3, 4, 4, 5, 3, 6
тогда использование DISTINCT вернет 1, 3, 4, 5, 6
.
Вы использовали DISTINCT вне SUM, поэтому все числа, включая двойные, суммируются, и затем вы получаете значения DISTINCT результата, который уже является одним числом. Другими словами, DISTINCT ничего не делает в вашем запросе.
Теперь, если вы сделаете: SELECT SUM(DISTINCT pp.EffectivePrice)
, тогда вы сложите все отдельные цены.
Но на самом деле, это может быть и неправильно. Вы уверены, что не хотите сумму? Я думаю, что вы вообще не должны использовать DISTINCT.