SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 28.05.2014 13:39:49

Piteryo
Участник
Зарегистрирован: 28.05.2014
Сообщений: 3

Странная ошибка: Not allowed to return a result set from a function

CREATE FUNCTION cena1243() RETURNS INTEGER
 
  BEGIN
 DECLARE a,b,sum1 INTEGER;
   
SELECT *
  FROM tovar t JOIN zakaz z;
   SET a=t.cena AND b=z.kolich;
  SET sum1=a*b;
    RETURN sum1;
  END

Подчеркивает "CREATE" и пишет, что Not allowed to return a result set from a function ... Ошибка где то с селектом, помогите народ, что делать? Что это?

Неактивен

 

#2 28.05.2014 13:46:27

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Странная ошибка: Not allowed to return a result set from a function

У Вас голый SELECT, который не допускается, но и не нужен. В SELECT нет условия джойна и условия WHERE. Последнее нужно для того, чтобы выбиралась только одна запись.

SELECT t.cena, z.kolich FROM tovar t JOIN zakaz z (УСЛОВИЕ ДЖОЙНА) (УСЛОВИЕ WHERE) INTO a,b;


Если нужна не одна запись, считайте сумму в запросе средствами SQL.

Неактивен

 

#3 28.05.2014 14:18:08

Piteryo
Участник
Зарегистрирован: 28.05.2014
Сообщений: 3

Re: Странная ошибка: Not allowed to return a result set from a function

rgbeast написал:

У Вас голый SELECT, который не допускается, но и не нужен. В SELECT нет условия джойна и условия WHERE. Последнее нужно для того, чтобы выбиралась только одна запись.

SELECT t.cena, z.kolich FROM tovar t JOIN zakaz z (УСЛОВИЕ ДЖОЙНА) (УСЛОВИЕ WHERE) INTO a,b;


Если нужна не одна запись, считайте сумму в запросе средствами SQL.

Понял.. Но почему a,b выходят пустыми, соответственно и сумма...

BEGIN
 DECLARE a,b,sum1 INTEGER;
   
SELECT t.cena, z.kolich FROM tovar t JOIN zakaz z ON z.tovar_id=t.id
  WHERE t.id=1 AND z.id=1
  INTO a,b;
 
  SET sum1=a*b;
 
    RETURN sum1;
  END

Неактивен

 

#4 28.05.2014 14:26:42

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Странная ошибка: Not allowed to return a result set from a function

Возможно, запрос дает пустое значение. Так будет, если в первом заказе нет товара с номером 1

Неактивен

 

#5 28.05.2014 14:58:23

Piteryo
Участник
Зарегистрирован: 28.05.2014
Сообщений: 3

Re: Странная ошибка: Not allowed to return a result set from a function

Спасибо! Все заработало!

Неактивен

 

Board footer

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