Oi, Ycaro! Como vai?
Agradeço por compartilhar seu código com a comunidade Alura.
Uma dica interessante para o futuro é usar a função COALESCE() sempre que quiser evitar que um resultado NULL cause erros em cálculos. Essa função substitui valores nulos por um valor padrão, garantindo que a execução continue sem problemas.
CREATE FUNCTION ValorComDesconto (
@CODIGO VARCHAR(10),
@DESCONTO FLOAT
)
RETURNS FLOAT
AS
BEGIN
DECLARE @PRECO FLOAT;
SELECT @PRECO = SUM([PRECO DE LISTA] - ([PRECO DE LISTA] * @DESCONTO))
FROM [TABELA DE PRODUTOS]
WHERE [CODIGO DO PRODUTO] = @CODIGO;
RETURN COALESCE(@PRECO, 0);
END;
GO
-- Exemplo de chamada:
SELECT dbo.ValorComDesconto('1000889', 0.20);
Este código calcula o total com desconto para o produto informado e retorna 0 se não houver registro, evitando erros com valores nulos.
Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!