Ошибка 1222: The Used SELECT statements have a different number of columns. Что делать?
Создаю функцию которая будет подсчитывать суммарную цену. Но вылезает ошибка при ее компиляции: 1222. Идей для решения вообще не возникло. Не могу понять в чем ошибка?! Помогите пожалуйста
delimiter $$
create function countprice(id int) returns int
deterministic
begin
declare a int;
declare b int;
SELECT services_has_queryautoservice.Queryautoservice_ID AS 'ID заявки',
SUM(services.`Price`) into b FROM services_has_queryautoservice JOIN services ON services_has_queryautoservice.Services_ID = services.ID WHERE services_has_queryautoservice.Queryautoservice_ID=id;
set a = b + 1000;
return a;
end $$
delimiter ;
Таблица Services
Таблица services_has_queryautoservice
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Ошибка возникает из-за того, что количество выбираемых полей в SELECT должно быть таким же, сколько переменных указано после INTO.
У вас в SELECT выбирается 2 значения, а в INTO стоит 1 переменная.
Так же, в таких запросах алиасы полей не используются. Их можно использовать только для подзапросов.
delimiter $$
create function countprice(id int) returns int
deterministic
begin
declare a int;
SELECT
SUM(services.`Price`) into a
FROM services_has_queryautoservice
JOIN services ON services_has_queryautoservice.Services_ID = services.ID
WHERE services_has_queryautoservice.Queryautoservice_ID=id;
return a + 1000;
end $$
delimiter ;

