Я пытаюсь сделать так, чтобы функция PLSQL возвратила мне прибыль от продаж, и одновременно описание продукта.
Я добился того, чтобы он возвратил благодеяние, которое не больше, что использовать sum()
с двумя подмостками.
Но поскольку я способствую тому, чтобы помимо благодеяния, я возвратился описание также?
Это Функция:
DELIMITER $$
CREATE FUNCTION calcularBeneficio(idVenta int) RETURNS double
BEGIN
DECLARE beneficio DOUBLE;
SELECT SUM(productos.pvp * ventas.cantidad) INTO beneficio
FROM ventas, productos
WHERE idventa = idVenta AND productos.ID = ventas.IDPRODUCTO;
RETURN beneficio;
END;$$
DELIMITER ;
Идея состоит в том, чтобы перемещать как параметр идентификацию продажи, и доставать Ваше благодеяние.
Ты мог бы создавать функцию, которая возвращала бы тебе таблицу
DELIMITER $
CREATE FUNCTION calcularBeneficio(idVenta int) RETURNS table(beneficio double, descripcion text)
BEGIN
DECLARE beneficio DOUBLE;descripcion TEXT;
SELECT SUM(productos.pvp * ventas.cantidad), descripcion INTO beneficio, descripcion
FROM ventas, productos
WHERE idventa = idVenta AND productos.ID = ventas.IDPRODUCTO;
RETURN next;
END;$
DELIMITER ;
и результат, ты это получаешь с select * from calcularBeneficio (idVenta) también ты мог бы использовать эту другую форму
DELIMITER $
CREATE FUNCTION calcularBeneficio(idVenta int) RETURNS table(beneficio double, descripcion text)
BEGIN
RETURN QUERY
SELECT SUM(productos.pvp * ventas.cantidad), descripcion
FROM ventas, productos
WHERE idventa = idVenta AND productos.ID = ventas.IDPRODUCTO;
END;$
DELIMITER ;