Informática, perguntado por matheuscozar, 11 meses atrás

Você trabalha em uma empresa de desenvolvimento de sistemas, sendo responsável pelos bancos de dados dos projetos. Muito tempo atrás o dono de uma vinícola solicitou um sistema para gerenciar a venda dos vinhos produzidos, na época foi desenvolvido o banco de dados com as seguintes tabelas e campos:


-Tabela Vinho (CodBar, Nome, Preço)
-Tabela Cliente (Numero, Nome, Endereço)
-Tabela Vendas (Id, ClienteNumero, VinhoCodBar)


Agora, esta vinícola quer realizar uma promoção de final de ano, em que o cliente recebe um desconto de 10% em compras com pagamento à vista. Para isso, eles solicitaram que sua empresa desenvolva um mecanismo no banco de dados onde o CodBar do vinho seja inserido e o valor do vinho retorne ao cliente já com 10%, se pago à vista. Você foi encarregado de realizar esta tarefa.

A resolução desse problema deve ser:

Escolha uma:
a. CREATE PROCEDURE proc_desconto (VAR_VinhoCodBar INT)
SELECT (fn_desconto(Preco, 0.90)) AS "Valor com desconto", Nome AS
"Vinho"
FROM Vinho
WHERE CodBar = var_VinhoCodBar;
CALL proc_desconto(codigo); Incorreto

b. CREATE FUNCTION fn_desconto (x DECIMAL(5,2), y FLOAT)
RETURNS DECIMAL(5,2)
CREATE PROCEDURE proc_desconto (VAR_VinhoCodBar INT)
SELECT (fn_desconto(Preco, 0.90)) AS "Valor com desconto", Nome AS
"Vinho"
FROM Vinho
WHERE CodBar = var_VinhoCodBar;
CALL proc_desconto(codigo);

c. CREATE FUNCTION fn_desconto (x DECIMAL(5,2), y FLOAT)
RETURNS DECIMAL(5,2)
RETURN (x * y);
CREATE PROCEDURE proc_desconto (VAR_VinhoCodBar INT)
SELECT (fn_desconto(Preco, 0.90)) AS "Valor com desconto", Nome AS
"Vinho"
FROM Vinho
WHERE CodBar = var_VinhoCodBar;
CALL proc_desconto(codigo);

d. CREATE FUNCTION fn_desconto (x DECIMAL(5,2), y FLOAT)
RETURNS DECIMAL(5,2)
RETURN (x * y);
CREATE PROCEDURE proc_desconto (VAR_VinhoCodBar INT)
SELECT (fn_desconto(Preco, 0.90)) AS "Valor com desconto", Nome AS
"Vinho"
FROM Vinho
WHERE CodBar = var_VinhoCodBar;

e. CREATE FUNCTION fn_desconto (x DECIMAL(5,2), y FLOAT)
RETURNS DECIMAL(5,2)
RETURN (x * y);
CALL proc_desconto(codigo);

Soluções para a tarefa

Respondido por pedropimenta87
24

Resposta:

CREATE FUNCTION fn_desconto (x DECIMAL(5,2), y FLOAT)

RETURNS DECIMAL(5,2)

RETURN (x * y);

CREATE PROCEDURE proc_desconto (VAR_VinhoCodBar INT)

SELECT (fn_desconto(Preco, 0.90)) AS "Valor com desconto", Nome AS

"Vinho"

FROM Vinho

WHERE CodBar = var_VinhoCodBar;

CALL proc_desconto(codigo);

Explicação:

Respondido por mcmg2010
18

Resposta:

CREATE FUNCTION fn_desconto (x DECIMAL(5,2), y FLOAT)

RETURNS DECIMAL(5,2)

RETURN (x * y);

CREATE PROCEDURE proc_desconto (VAR_VinhoCodBar INT)

SELECT (fn_desconto(Preco, 0.90)) AS "Valor com desconto", Nome AS

"Vinho"

FROM Vinho

WHERE CodBar = var_VinhoCodBar;

CALL proc_desconto(codigo);

Explicação:

Correta! Toda a estrutura está montada corretamente!!

As demais opções apresentam erros na sintaxe e partes faltantes, etc.

Perguntas interessantes