powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Функция выполняется правильно только один раз
5 сообщений из 5, страница 1 из 1
Функция выполняется правильно только один раз
    #32492811
sirsergio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Функция выполняется правильно только один раз. Запускаешь ее второй раз - вылетает мускул сервер. Кто поскажет где ошибка, может я не правильно написал функцию?

CREATE FUNCTION FRUT_FOSTTOV (KODTOV1 CHAR, DATA1 DATE, KODSKL1 CHAR) RETURNS FLOAT
BEGIN
DECLARE Ostatok FLOAT;
DECLARE c1 cursor FOR
select IFNULL(boss.oborkolvo, 0)+ross.ostatok from
(select o.kodtov, IFNULL(sum(A.KOLVO),0) oborkolvo
from frut_t_obor A,
(select kodtov, kol, data from
frut_t_osttov A,
(select MAX(DATA) maxdata from frut_t_osttov A
Where KODTOV=KODTOV1
and Data<DATA1
and A.KODSKL= KODSKL1
) p
Where KODTOV=KODTOV1 and data=p.maxdata
and Data<DATA1
and A.KODSKL= KODSKL1
) o
Where A.KODTOV=KODTOV1
and o.kodtov = a.kodtov
and A.DATA>IFNULL(o.data,str_to_date('01.01.1981','%d.%m.%Y'))
and A.DATA<=IFNULL(DATA1,str_to_date('01.01.1981','%d.%m.%Y'))
and A.KODSKL=KODSKL1
group by o.kodtov) boss RIGHT JOIN
(select kodtov, kol ostatok, data from
frut_t_osttov A,
(select MAX(DATA) maxdata from frut_t_osttov A
Where KODTOV=KODTOV1
and Data<DATA1
and A.KODSKL= KODSKL1
) p
Where KODTOV=KODTOV1 and data=p.maxdata
and Data<DATA1
and A.KODSKL= KODSKL1) ross ON (boss.kodtov = ross.kodtov);
Open c1;
FETCH c1 into Ostatok;
Return Ostatok;
Close c1;
END;

А запуск такой:
mysql> select FRUT_FOSTTOV ('1/11514',str_to_date('01.02.2004','dd.mm.yyyy'),'11');
...
Рейтинг: 0 / 0
Функция выполняется правильно только один раз
    #32492825
sirsergio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал даже построить элементарную функцию, где находится максимум по какому-то полю таблицы, и все равно правильно она не работает, ПОЧЕМУ???
Самое интересное это то, что запустишь ее первый раз, посчитает правильно, второй - совсем "левое" значение "202" - ОТКУДА???

CREATE FUNCTION FRUT_FOSTTOV103 (KODTOV1 CHAR, DATA1 DATE, KODSKL1 CHAR) RETURNS FLOAT
BEGIN
DECLARE Ostatok FLOAT;
DECLARE c1 cursor FOR
select max(kol) from
frut_t_osttov;
Open c1;
FETCH c1 into Ostatok;
Return Ostatok;
Close c1;
END;

kol тип float.
Что я делаю не так? Я даже уверен, что делаю что-то не так. Весь справочник по мускул касательно функций излазил - вообщем запарился.
...
Рейтинг: 0 / 0
Функция выполняется правильно только один раз
    #32493112
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот она - альфа.

Я поискал в bug, нашел похожее.
http://bugs.mysql.com/bug.php?id=2656

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Функция выполняется правильно только один раз
    #32493113
Marat_L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот она - альфа.

Я поискал в bug, нашел похожее.
http://bugs.mysql.com/bug.php?id=2656

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
Функция выполняется правильно только один раз
    #32493271
Sad Spirit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в Постгресе процедурный язык PL/PgSQL появился в http://www.postgresql.org/docs/7.4/interactive/release-6-4.html]версии 6.4, вышедшей в 1998 году . Пользуйтесь стабильной отлаженной версией! ;)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Функция выполняется правильно только один раз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]