lrik64
@lrik64
Начинающий программист

Как отредактировать скрипт?

Доброго времени суток,для задачи "написать запрос, позволяющий увеличить на 1 все значения поля VALUE таблицы TABLE_A, если для данной строки в таблице TABLE_B существует идентичная строка и увеличить на 2, если такой строки не существует." сделал скрипт, но при компиляции выдает ошибку. Пожалуйста подскажите как исправить.
UPDATE TABLE_A
SET VALUE = VALUE + CASE
                       WHEN EXISTS(SELECT * FROM TABLE_B WHERE TABLE_B.ID = TABLE_A.ID)
                       THEN 1
                       ELSE 2
                    END

текст ошибки: can't format message 13:896 -- message file C:\WINDOWS\firebird.msg not found.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, column 5.
VALUE.
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ответы на вопрос 1
lrik64
@lrik64 Автор вопроса
Начинающий программист
Разобрался,так как там была конфликтация типов данных (в первой таблице INTEGER а во второй varchar ) выставил в двух таблицах INTEGER и следующий скрипт заработал:
UPDATE TABLE_A
SET "VALUE" = "VALUE" + CASE
WHEN EXISTS(SELECT * FROM TABLE_B WHERE TABLE_B."VALUE" = TABLE_A."VALUE")
THEN + 1
ELSE + 2
END

Либо нужно было играться с CAST.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы