Тип вычисляемых полей во временной таблице

Andy
Дата: 13.02.2001 19:27:01
Привет!

Подскажите, каким образом можно получить поле типа decimal в вычисляемом поле временной таблицы?
При определении полей как
col1 int NOT NULL,
col2 int NOT NULL,
col3 AS (cast ((col2*10000/col1) as decimal (5,1))/100)
(и при условии что таких полей 22) запрос выдает ошибку типа Arithmetic overflow error converting numeric to data type numeric.
при этом при определении только одного поля таким образом - все тип-топ (только почему-то 6 знаков после запятой?).
Если же написать так

col3 AS (col2*100/col1)
то выдает целые числа, а нужно с точностью до второго знака (

Объясните самоучке )
SergSuper
Дата: 14.02.2001 10:01:24
decimal (5,1) - т.е. всего отводиться под число 5 знаков, из них один после запятой. Если col2*10000/col1 больше 9999.9 (например col1 и col2 равны 1) то естественно будет переполнение.

а я бы написал
col3 AS convert(dec(10,2),col2*100.0/col1)