Проблема в том, что вы конвертируете в числовой тип.Числовые типы представляют количество, поэтому вы должны думать о них так же, как и о математике.
187 == 187.0 == 187.00000 == 187.0000000000
Все они имеют одинаковое значение, поэтому в числовом виде они будут представлены одинаково (обычно).
Строки представляют собой символы, которые составляют значение.Строки могут представлять текст, такой как «Это строка» или «Быстрая коричневая собака» или «235136513509835».
В строках:
"187" != "187.00" != "187.0000"
Исходя из этого, я бы рекомендовал преобразовать встрока.У меня нет машины с Windows, поэтому я не могу подтвердить, но попробуйте что-то вроде:
SELECT
CAST(CONVERT(DECIMAL(8,2),AVG(INV.TotalPrice)) AS varchar(8)) AS 'Average Price',
CAST(CONVERT(DECIMAL(8,2),MIN(INV.TotalPrice)) AS varchar(8)) AS 'Miniumum Price',
CAST(CONVERT(DECIMAL(8,2),MAX(INV.TotalPrice)) AS varchar(8)) AS 'Maximum Price'
FROM INVOICE INV;
Посмотрите здесь: http://msdn.microsoft.com/en-us/library/ms187928.aspx