Ajuda com sintaxe de função Mysql

6 respostas
mysql
M

Preciso que o resultado desse select retorne como resultado da função, mas da erro de sintaxe.
Alguém pode ajudar?

DELIMITER //
CREATE FUNCTION soma (n1 int)  RETURNS decimal
BEGIN
SET @soma := 0;
SELECT * FROM venda,(SELECT @soma := SUM(produtos.preco_unidade * itens_venda.quantidade)
FROM produtos, itens_venda
WHERE  codigo_produto = codigo_produto_iv AND codigo_venda = 1;

RETURN @soma;
END
; //

6 Respostas

B

Tenta assim:

se você precisar desta parte
SELECT * FROM venda vai ter que melhorar mais acredito que vc não precisa se tivero o ID da venda em ’ itens_venda’ falow?

M

O erro de sintaxe parou, no entanto o erro agora é o 1415, diz que não tem permissão para retornar o conjunto de resultado de uma função…

S

Crie uma Procedure.

M

É um trabalho que tenho que entregar, precisa ter procedures, trigger, e functions. Falta apenas a função pra completar.

S

Veja se isso resolve.

CREATE FUNCTION soma (n1 int) RETURNS decimal DETERMINISTIC

BEGIN

DECLARE soma DECIMAL;

SELECT SUM(produtos.preco_unidade * itens_venda.quantidade) AS resultado FROM produtos, itens_venda WHERE codigo_produto = codigo_produto_iv AND codigo_venda = n1;

SET soma = resultado;

RETURN soma;

END;
M

Continua o mesmo erro, 1415

Criado 14 de junho de 2016
Ultima resposta 15 de jun. de 2016
Respostas 6
Participantes 3