Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Mensagem do resultado não muda não importa o código do produto

Coloquei vários códigos de produto e sempre recebo a mesma mensagem dizendo que é um produto barato mesmo sendo o código do produto mais caro.

DELIMITER //
DROP PROCEDURE IF EXISTS IF_ANINHADO;
CREATE PROCEDURE `IF_ANINHADO` (CODIGO VARCHAR(20))
BEGIN
    DECLARE PRECO FLOAT;
    DECLARE RESULTADO VARCHAR(30);
    SELECT PRECO_DE_LISTA INTO PRECO FROM TABELA_DE_PRODUTOS WHERE CODIGO = CODIGO LIMIT 1;
    IF PRECO >= 12 THEN
        SET RESULTADO = 'ESSE É UM PRODUTO CARO';
    ELSEIF PRECO >= 7 AND PRECO < 12 THEN
        SET RESULTADO = 'ESSE É UM PRODUTO EM CONTA';
    ELSE
        SET RESULTADO = 'ESSE É UM PRODUTO BARATO';
    END IF;
    SELECT RESULTADO;
END//
CALL IF_ANINHADO('1037797');
1 resposta
solução!

Eu mesmo encontrei a solução Tinha cometido um erro no SELECT

SELECT PRECO_DE_LISTA INTO PRECO FROM TABELA_DE_PRODUTOS WHERE CODIGO = CODIGO LIMIT 1;

mas na verdade é:

SELECT PRECO_DE_LISTA INTO PRECO FROM TABELA_DE_PRODUTOS WHERE CODIGO_DO_PRODUTO = CODIGO LIMIT 1;