SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.10.2012 12:00:25

newuser
Участник
Зарегистрирован: 12.10.2012
Сообщений: 7

Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

Вот часть запроса, на которую выдается эта ошибка:
SELECT 
(isnull(+$piece(fields,'R200_C3:',2),0)+isnull(+$piece(fields,'R300_C3:',2),0)+isnull(+$piece(fields,'R350_C3:',2),0))/(isnull(+$piece(fields,'R216_C3:',2),0)+isnull(+$piece(fields,'R316_C3:',2),0)+isnull(+$piece(fields,'R363_C3:',2),0))

  FROM          ASV_Entities.CalcStatementTitle


Проблема в делении.
Если делится на число, например:
SELECT 
(isnull(+$piece(fields,'R200_C3:',2),0)+isnull(+$piece(fields,'R300_C3:',2),0)+isnull(+$piece(fields,'R350_C3:',2),0))/3
  FROM          ASV_Entities.CalcStatementTitle

то выполняется как надо, без ошибок.
В чем засада?

Да, (isnull(+$piece(fields,'R216_C3:',2),0)+isnull(+$piece(fields,'R316_C3:',2),0)+isnull(+$piece(fields,'R363_C3:',2),0)) не ноль,

Поле fields - тип VARCHAR

Отредактированно newuser (12.10.2012 14:11:25)

Неактивен

 

#2 12.10.2012 14:27:52

newuser
Участник
Зарегистрирован: 12.10.2012
Сообщений: 7

Re: Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

Увы, никто не отвечает.
Потому поговорю сама с собой)
Похоже, что дело в типе данных.
Попробовала делить на переменную типа INTEGER, сработало без ошибок.
Тогда, может посоветуете где посмотреть правила деления. Я нашла только что на DATE, TIME делить нельзя.

Неактивен

 

#3 12.10.2012 14:43:49

newuser
Участник
Зарегистрирован: 12.10.2012
Сообщений: 7

Re: Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

) Следующий вопрос.
Менять формат, структуру базы (добавлять таблицы) не имею права.
Как внутри запроса поменять формат знаменателя?

Неактивен

 

#4 12.10.2012 15:13:57

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

Ошибка то какая?

upd, если смена типа поля помогает, смените тип поля в запросе с помощью CAST()

Отредактированно Shopen (12.10.2012 15:24:31)

Неактивен

 

#5 12.10.2012 15:47:58

newuser
Участник
Зарегистрирован: 12.10.2012
Сообщений: 7

Re: Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

Ошибка:
#5540: SQLCODE: -400
400
THE CATALOG HAS THE MAXIMUM NUMBER OF USER DEFINED INDEXES

Explanation
No more than 500 user-defined indexes can be created in the catalog database.

System action
The statement cannot be processed.

Programmer response
If this index must be created, another user-defined index on the catalog must be dropped. After that index is dropped, this statement can be executed.

SQLSTATE
54027
(http://publib.boulder.ibm.com/infocente … lcodes.htm)

Попробовала Cast, большое спасибо за подсказку (пишу запросы редко, по мере необходимости, все забываю, начинаю разбираться заново каждый раз):

SELECT 
(cast((isnull(+$piece(fields,'R200_C3:',2),0)+isnull(+$piece(fields,'R300_C3:',2),0)+isnull(+$piece(fields,'R350_C3:',2),0)) as INTEGER))/(cast((isnull(+$piece(fields,'R200_C3:',2),0)+isnull(+$piece(fields,'R300_C3:',2),0)+isnull(+$piece(fields,'R350_C3:',2),0)) as INTEGER))

       FROM          ASV_Entities.CalcStatementTitle

Неа, опять -400((((

Понимаю, что там про индексы написано, но не понимаю как это применить к моему случаю.

Неактивен

 

#6 12.10.2012 16:22:13

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

Эм.. так это вообще не про mysql, это db2

Вам стоит обратится на соответствующий форум, т.к. тут только про mysql

Неактивен

 

#7 12.10.2012 16:48:03

newuser
Участник
Зарегистрирован: 12.10.2012
Сообщений: 7

Re: Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

Боюсь я погрячилась, расшифровала ошибку как ошибку DB2.
Прошу прощения, у меня сейчас база конечно же не DB2, а CACHE.
Проблема осталась.
Что мне делать?

Неактивен

 

#8 12.10.2012 16:49:21

newuser
Участник
Зарегистрирован: 12.10.2012
Сообщений: 7

Re: Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

Вот полный текст ошибки:
ОШИБКА #5540: SQLCODE: -400 Сообщение: Unexpected error occurred: <DIVIDE>%0AmDuncommitted+17^%sqlcq.ASV.224

Неактивен

 

#9 12.10.2012 18:38:52

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

CacheSQL это тоже совсем не MySql - вам надо обратится в сообщества или поддержку данной СУБД

Неактивен

 

#10 12.10.2012 18:57:36

newuser
Участник
Зарегистрирован: 12.10.2012
Сообщений: 7

Re: Помогите начинающему, пожалуйста. Бьюсь с ошибкой ОШИБКА #5540: SQLCODE: -400

Спасибо большое! Уже разобралась.)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson