|  | 
| 
Тип вычисляемых полей во временной таблице | |||
|---|---|---|---|
| #18+ Привет! Подскажите, каким образом можно получить поле типа 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) то выдает целые числа, а нужно с точностью до второго знака ( Объясните самоучке ) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 13.02.2001, 19:27 |  | ||
| 
Тип вычисляемых полей во временной таблице | |||
|---|---|---|---|
| #18+ decimal (5,1) - т.е. всего отводиться под число 5 знаков, из них один после запятой. Если col2*10000/col1 больше 9999.9 (например col1 и col2 равны 1) то естественно будет переполнение. а я бы написал col3 AS convert(dec(10,2),col2*100.0/col1) ... | |||
| : 
 Нравится:
     Не нравится:
     | |||
| 14.02.2001, 10:01 |  | ||
|  | 

| start [/forum/topic.php?desktop=1&fid=46&tid=1827348]: | 0ms | 
| get settings: | 9ms | 
| get forum list: | 12ms | 
| check forum access: | 2ms | 
| check topic access: | 2ms | 
| track hit: | 24ms | 
| get topic data: | 12ms | 
| get forum data: | 2ms | 
| get page messages: | 45ms | 
| get tp. blocked users: | 2ms | 
| others: | 12ms | 
| total: | 122ms | 

| 0 / 0 | 
