Ошибка при вызове функции (Operand should contain 1 column(s))

155
01 июня 2019, 13:20

Столкнулся с проблемой. Не могу вызвать процедуру, потому что выдаёт ошибку

Operand should contain 1 column(s)

В чем может быть проблема? Вот функция:

DELIMITER //
CREATE FUNCTION ReturnHours (id INT)
RETURNS INT
BEGIN
    DECLARE a int; DECLARE b int; DECLARE result int;
    SET a = (SELECT ПРЕДМЕТЫ.`Колво_лекций` FROM ПРЕПОДАВАТЕЛИ JOIN ПРЕДМЕТЫ WHERE ПРЕДМЕТЫ.ID=VAR_ID AND ПРЕПОДАВАТЕЛИ.`ID_предмета`= VAR_ID);
    SET b = (SELECT ПРЕДМЕТЫ.`Колво_практик` FROM ПРЕПОДАВАТЕЛИ JOIN ПРЕДМЕТЫ WHERE ПРЕДМЕТЫ.ID = VAR_ID AND ПРЕПОДАВАТЕЛИ.`ID_предмета`= VAR_ID);
    SET result = (SELECT @a+@b FROM ПРЕПОДАВАТЕЛИ where ПРЕПОДАВАТЕЛИ.`Лекции`=1 AND ПРЕПОДАВАТЕЛИ.`Практики`=1 );
    SET result = (SELECT @a FROM ПРЕПОДАВАТЕЛИ where ПРЕПОДАВАТЕЛИ.`Лекции`=1 AND ПРЕПОДАВАТЕЛИ.`Практики`=0);
    SET result = (SELECT @b FROM ПРЕПОДАВАТЕЛИ where ПРЕПОДАВАТЕЛИ.`Лекции`=0 AND ПРЕПОДАВАТЕЛИ.`Практики`=1);
RETURN result;
END//

Вот процедура:

DELIMITER //
CREATE PROCEDURE TheMostHours ()
LANGUAGE SQL
DETERMINISTIC
SQL SECURITY DEFINER 
BEGIN
 DECLARE max_id int;
 DECLARE a int;
 DECLARE i int; SET i=0;
 SET max_id = (SELECT MAX(ПРЕПОДАВАТЕЛИ.ID) FROM ПРЕПОДАВАТЕЛИ); #количество итераций цикла
 CREATE TEMPORARY TABLE TEMP_TABLE (ID int primary key not null AUTO_INCREMENT,
 ФИО nvarchar(100) not null,
 Колво_часов int not null DEFAULT 0
 );
 Label: WHILE i < max_id
 DO INSERT INTO TEMP_TABLE(ФИО, Колво_часов) SELECT (SELECT ФИО FROM ПРЕПОДАВАТЕЛИ WHERE ПРЕПОДАВАТЕЛИ.ID = i, SELECT ReturnHours(i));
 i = i + 1;
 END WHILE Label;
 SELECT * FROM TEMP_TABLE WHERE TEMP_TABLE.Колво_часов = MAX(TEMP_TABLE.Колво_часов);
END//
READ ALSO
Как применить анимированный border

Как применить анимированный border

Помогите применить к этому классу:post-38435

163
CSS, HTML, как выбрать селектор обычного текста?

CSS, HTML, как выбрать селектор обычного текста?

Как обратиться в CSS к тексту "Как это выбрать???" идущего после первого li? Хром нас уверяет - никак:

147
Наименование переменной и ID тега

Наименование переменной и ID тега

Допустим у меня в HTML документе есть следующие DOM элементы:

145
Как сделать изогнутые прямоугольники (bent rectangle) в SVG

Как сделать изогнутые прямоугольники (bent rectangle) в SVG

У меня есть проект, над которым я работаюНеобходимо сделать круговую навигацию с кнопками, которые выглядят как сегменты вокруг Iron Man, изображенной...

134