У вас есть серьезные проблемы здесь ...
Десятичные числа
Точность / масштаб по умолчанию для десятичной дроби составляет 38,0. Таким образом, вы не храните ни одной десятичной части.
Таким образом, вы используете только RAND (0) для первой итерации и RAND (1) для всех последующих итераций, что составляет 0,943597390424144 и 0,713591993212924
Я не могу вспомнить, как применяется округление / усечение, и я не знаю, что такое тип данных SalesValue, но округление будет давать "1" каждый раз.
Теперь, если вы исправите это и правильно объявите десятичную ...
Проблемы с посевом
RAND принимает целое число семя. Посев с 1,0001 или 1,3 или 1,999 дает то же значение (0,713591993212924).
Итак, "Rand (1.713591993212924) + 1" = "RAND (1) + 1" = "1.713591993212924" для каждой последующей итерации.
Вернуться на круги своя ...
Исправить
- Избавьтесь от @ RandomNoSeed
- Либо: генерировать случайное целочисленное значение, используя CHECKSUM (NEWID ())
- Или: сгенерировать случайное значение с плавающей запятой, используя RAND () * CHECKSUM (NEWID ()) (сейчас не волнует начальное значение)