Вам необходимо определить масштаб и точность для ваших десятичных знаков в табличной переменной.
например.
DECLARE @Nov TABLE(
custCode VARCHAR(10),
PromiseAvg decimal(18,8),
ShipAvg decimal(18,8) )
или любой другой масштаб и точность, которые вам подходят. Я только что проверил на SQL Server 2008, и похоже, что decimal(18,0)
является значением по умолчанию, если это не указано в операторе create table
.
Также сделайте то же самое с cast
s
...
isnull(AVG(Cast(DATEDIFF(dd, ISNULL(startDate, 0), ISNULL(PromiseDate, 0))
As decimal(18,8))),0) As PromiseAvg,
....