Чисто гипотетический вопрос - допустим есть простая таблица-куча, где есть 3 столбца. Код клиента, тип документа и сумма.
Тип документов бывает двух видов - продажа и возврат (текстовое поле), сумма - всегда положительный инт. Код клиента - инт.
Что больше ресурсов системы сожрет, если нужно посчитать результат (продажи - возвраты) по клиенту
Есть два варианта кода - первый - это кейс с суммированием sum(case when d=накладная then sale else -sale)
Второй вариант - это селект из вложенного юниона:
Select tt, sum(totalsum) from
(Select tt, sale from tbl where d=накладная
Union all
Select tt,-sale from tbl where d=возврат) r1
Group by tt