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

Откуда:
Сообщений: 4
Выбираю запросом поле TECHPAR.TECHPAR_VALUE по структуре оно имеет тип varchar
SELECT TECHPAR.TECHPAR_VALUE
FROM NMK INNER JOIN
NMK_CLASSIF ON NMK.NMK_CLASSIF_ID = NMK_CLASSIF.NMK_CLASSIF_ID INNER JOIN
TECHNOLOGY ON NMK.NMK_ID = TECHNOLOGY.TECH_NMK_ID INNER JOIN
TECHPAR ON TECHNOLOGY.TECH_ID = TECHPAR.TECH_ID AND TECHNOLOGY.VER_ID = TECHPAR.VER_ID
WHERE (TECHPAR.PAR_ID = 258))
Потом мне нужно с полученной выборкой произвести вот какие операции:
каждое значение разделить на 1.42, при попытки это сделать
UPDATE TECHPAR
SET TECHPAR_VALUE = cast(TECHPAR_VALUE as numeric)/1.42
where TECHPAR.TECHPAR_VALUE in
(SELECT TECHPAR.TECHPAR_VALUE
FROM NMK INNER JOIN
NMK_CLASSIF ON NMK.NMK_CLASSIF_ID = NMK_CLASSIF.NMK_CLASSIF_ID INNER JOIN
TECHNOLOGY ON NMK.NMK_ID = TECHNOLOGY.TECH_NMK_ID INNER JOIN
TECHPAR ON TECHNOLOGY.TECH_ID = TECHPAR.TECH_ID AND TECHNOLOGY.VER_ID = TECHPAR.VER_ID
WHERE (TECHPAR.PAR_ID = 258))
выдает ошибку Error converting data type varchar to numeric.
ВОПРОС : как сформировать запрос чтоб не меня типа поля с varchar на numeric произвести такое изменение??????????
27 янв 04, 15:37    [508768]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нескольких связанных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Наверное надо проверять можно ли существоющее значение в TECHPAR_VALUE преобразовать к типу numeric. Например с помощью функции ISNUMERIC

ЗЫ
А с чего это у вас числовые типы данных храняться как символьные ?
27 янв 04, 15:41    [508780]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нескольких связанных таблиц  [new]
DmitriyR
Member

Откуда:
Сообщений: 4
в данном поле хрянятся как числовая так и текстовая информация
27 янв 04, 15:51    [508827]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нескольких связанных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Сообщение об ошибке - Error converting data type varchar to numeric - говорит о том, что не все символьные поля точно соответствуют числовому типу данных.
27 янв 04, 15:53    [508833]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нескольких связанных таблиц  [new]
DmitriyR
Member

Откуда:
Сообщений: 4
isnumeric не помогло :(((
27 янв 04, 15:59    [508853]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нескольких связанных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
И как же вы его использовали ?
27 янв 04, 16:01    [508863]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нескольких связанных таблиц  [new]
DmitriyR
Member

Откуда:
Сообщений: 4
UPDATE TECHPAR
SET TECHPAR_VALUE = isnumeric(TECHPAR_VALUE )/ 1.42
where TECHPAR.TECHPAR_VALUE in
(SELECT TECHPAR.TECHPAR_VALUE
FROM NMK INNER JOIN
NMK_CLASSIF ON NMK.NMK_CLASSIF_ID = NMK_CLASSIF.NMK_CLASSIF_ID INNER JOIN
TECHNOLOGY ON NMK.NMK_ID = TECHNOLOGY.TECH_NMK_ID INNER JOIN
TECHPAR ON TECHNOLOGY.TECH_ID = TECHPAR.TECH_ID AND TECHNOLOGY.VER_ID = TECHPAR.VER_ID
WHERE (TECHPAR.PAR_ID = 258))
27 янв 04, 16:06    [508875]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нескольких связанных таблиц  [new]
Glory
Member

Откуда:
Сообщений: 104760
Вы бы хоть открыли хелп что-ли и почитали что эта функция возвращает.
27 янв 04, 16:07    [508880]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нескольких связанных таблиц  [new]
Fedot
Member

Откуда: Простоквашино
Сообщений: 110
UPDATE TECHPAR
SET TECHPAR_VALUE =
CASE isnumeric(TECHPAR_VALUE )
WHEN 0 THEN 0
ELSE CAST(TECHPAR_VALUE AS numeric)
END
/ 1.42
where TECHPAR.TECHPAR_VALUE in
(SELECT TECHPAR.TECHPAR_VALUE
FROM NMK INNER JOIN
NMK_CLASSIF ON NMK.NMK_CLASSIF_ID = NMK_CLASSIF.NMK_CLASSIF_ID INNER JOIN
TECHNOLOGY ON NMK.NMK_ID = TECHNOLOGY.TECH_NMK_ID INNER JOIN
TECHPAR ON TECHNOLOGY.TECH_ID = TECHPAR.TECH_ID AND TECHNOLOGY.VER_ID = TECHPAR.VER_ID
WHERE (TECHPAR.PAR_ID = 258))
27 янв 04, 16:11    [508890]     Ответить | Цитировать Сообщить модератору
 Re: Обновление нескольких связанных таблиц  [new]
Fedot
Member

Откуда: Простоквашино
Сообщений: 110
вдогонку

..тогда все неконвертируемые значения будут 0
27 янв 04, 16:12    [508895]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить