Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Тип и точность вычисляемого поля  [new]
Шамиль Фаридович
Member

Откуда: Саратов
Сообщений: 484
Доброго времени суток!
На входе таблица
CREATE TABLE [dbo].[tbTest1(
	[ID] int NOT NULL identity(1,1) primary key,
	[Summ1] decimal(28, 9) NULL,
	[Summ2] decimal(28, 9) NULL,
	[Coef1] decimal(28, 9) NULL,
	[Coef2] decimal(28, 9) NULL,
	[Total] decimal(28, 9) NULL,
	[TotalCoef] AS (Summ1*Coef1+Summ2*Coef2)/[Total] PERSISTED
) ON [PRIMARY] 

В итоге получаю вычисляемое поле TotalCoef с автогенерируемым типом decimal(38, 6), а мне нужен масштаб как минимум 9 знаков (после запятой).
Добиться этого удается, только если уменьшить общую точность обоих коэффициентов или сумм.
Возникает вариант с обычным столбцом и триггерами, но эксперименты с параметрами decimal(28, 9) и
SQL_VARIANT_PROPERTY((@Summ1*@Coef1+@Summ2*@Coef2)/@Total, 'Scale') AS [Scale]
показывают, что тип у возвращаемого выражения decimal(38, 6)
Т.о., единственный возможный для меня вариант - уменьшение Precision?
4 мар 13, 15:31    [14009406]     Ответить | Цитировать Сообщить модератору
 Re: Тип и точность вычисляемого поля  [new]
iap
Member

Откуда: Москва
Сообщений: 47085
Вот же, недавно обсуждали: Деление DESIMAL с заданной точностью - борьба с неявным округлением
4 мар 13, 15:38    [14009462]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить