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

Откуда:
Сообщений: 68
Нужно посчитать сумму по столбцу, формат которого текстовый: Operand data type varchar is invalid for sum operator.
Столбец же по факту содержит числовые значения типа 464.5345
Просьба помочь.
22 авг 12, 10:27    [13047401]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
И что мешает преобразовать символьный тип в числовой ?
22 авг 12, 10:29    [13047413]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
nikolay_y
Member

Откуда:
Сообщений: 68
Нет прав на изменение типа столбца.
22 авг 12, 10:30    [13047421]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
nikolay_y
Нет прав на изменение типа столбца.

А причем здесь изменение типа столбца в таблице ?
22 авг 12, 10:31    [13047432]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
Bryk_Alien
Guest
CAST(TxtField AS numeric)

?
22 авг 12, 10:33    [13047441]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
nikolay_y
Member

Откуда:
Сообщений: 68
Хорошо, тогда подскажите как.
22 авг 12, 10:33    [13047442]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
nikolay_y
Хорошо, тогда подскажите как.

Использовать документированные функции преобразования типов данных ?
22 авг 12, 10:34    [13047446]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
nikolay_y
Member

Откуда:
Сообщений: 68
Bryk_Alien,

select sum(cast(TxtField as float(4))) from Base

помогло, спасибо.
22 авг 12, 10:46    [13047535]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
iap
Member

Откуда: Москва
Сообщений: 47194
nikolay_y
Bryk_Alien,

select sum(cast(TxtField as float(4))) from Base

помогло, спасибо.
Что, по-Вашему, означает 4 во FLOAT(4)?
http://msdn.microsoft.com/ru-ru/library/ms173773(v=sql.100)

Вам больше подойдёт DEC(20,4)
20 - это я так, для примера, написал. Сколько там у Вас максимально цифр в числе может быть, - мне неведомо
22 авг 12, 11:14    [13047730]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
Glory
Member

Откуда:
Сообщений: 104751
nikolay_y
Bryk_Alien,

select sum(cast(TxtField as float(4))) from Base

помогло, спасибо.

Следующий вопрос будет - а почему результат суммирования не совпадает со сложением тех же значений вручную
22 авг 12, 11:19    [13047773]     Ответить | Цитировать Сообщить модератору
 Re: преобразование данных  [new]
nikolay_y
Member

Откуда:
Сообщений: 68
iap
nikolay_y
Bryk_Alien,

select sum(cast(TxtField as float(4))) from Base

помогло, спасибо.
Что, по-Вашему, означает 4 во FLOAT(4)?
http://msdn.microsoft.com/ru-ru/library/ms173773(v=sql.100)

Вам больше подойдёт DEC(20,4)
20 - это я так, для примера, написал. Сколько там у Вас максимально цифр в числе может быть, - мне неведомо


Точности в 7 знаков мне вполне достаточно, спасибо.
22 авг 12, 17:20    [13050893]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить