Судя по запросу:
SELECT @Code=КодТовара, @Итог=SUM(Количество)
FROM Заказ
WHERE ДатаЗаказа BETWEEN GetDate()-@Интервал AND GetDate()
GROUP BY КодТовара
ORDER BY SUM(Количество)
У вас может вернуться много строк, но так вы это все в переменные начитываете, то все равно останется только одно последнее по порядку сортировки значение, т.е. товар с максимальным или минимальным значением SUM(Количество), т.е. можно попробовать использовать агрегирующую функцию на SUM(Количество).
Также в запросе используется GetDate(), и если предположить, что в таблице нет записей с датой превосходящей GetDate(), то можно делать проверку на открытый диапазон, т.е.
ДатаЗаказа >= GetDate()-@Интервал.
Итого, можно так попробовать:
WITH Q AS
(SELECT КодТовара, SUM(Количество) as Сумм
FROM Заказ
WHERE ДатаЗаказа >= GetDate()-@Интервал
GROUP BY КодТовара)
SELECT @Code = Q.КодТовара,
@Итог = Q.Сумм
FROM Q
WHERE Q.Сумм = (SELECT CASE WHEN @ТипРезультата = 1
THEN MAX(Q.Сумм)
ELSE MIN(Q.Сумм)
END
FROM Q)