FC ConcursosFC Concursos

Questão FC374529

Considere o seguinte cenário em certo banco de dados de uma loja on-line criada no Mysql Workbench: Determinado profissional deverá criar uma stored procedure chamada CalcularTotal

Linguagem SQL

Instituto Consulplan · 2024

Considere o seguinte cenário em certo banco de dados de uma loja on-line criada no Mysql Workbench:

 

 

Determinado profissional deverá criar uma stored procedure chamada CalcularTotalPedido, que recebe um parâmetro PedidoID e calcula o valor total do pedido com base nos detalhes do pedido. Representa corretamente a implementação dessa stored procedure:

  1. DELIMITER $

    CREATE PROCEDURE CalcularTotalPedido (PedidoID INT)

    BEGIN

    SELECT SUM(Preco * Quantidade) AS Total

    FROM ItensPedido

    JOIN Produto ON ItensPedido.ProdutoID = Produto.ProdutoID

    WHERE ItensPedido.PedidoID = PedidoID;

    END $

    DELIMITER;

  2. DELIMITER $

    CREATE PROCEDURE CalcularTotalPedido (PedidoID INT)

    BEGIN

    SELECT SUM(Preco * Quantidade) AS Total

    FROM ItensPedido

    JOIN Produto ON ItensPedido.ProdutoID = Produto.ProdutoID

    GROUP BY PedidoID

    HAVING ItensPedido.PedidoID = PedidoID;

    END $

    DELIMITER;

  3. DELIMITER $

    CREATE PROCEDURE CalcularTotalPedido (PedidoID INT)

    BEGIN

    SELECT SUM(Preço * Quantidade) AS Total

    FROM ItensPedido

    JOIN Produto ON ItensPedido.ProdutoID = Produto.ProdutoID

    WHERE PedidoID = PedidoID;

    END $

    DELIMITER;

  4. DELIMITER $

    CREATE PROCEDURE CalcularTotalPedido (PedidoID INT)

    BEGIN

    SELECT SUM(Preco * Quantidade) AS Total

    FROM ItensPedido

    WHERE PedidoID = PedidoID

    JOIN Produto ON ItensPedido.ProdutoID = Produto.ProdutoID;

    END $

    DELIMITER;

Mostrar resposta e comentário

Gabarito

A

Comentário do professor

O bloco apresentado cria corretamente a stored procedure chamada CalcularTotalPedido e recebe o parâmetro PedidoID, usando DELIMITER para permitir o corpo da rotina.

Dentro do corpo, o SELECT realiza a agregação \( \sum (Preco \times Quantidade) \) para computar o total do pedido e o expõe com o alias AS Total.

O JOIN entre ItensPedido e Produto traz o campo Preco, já que ItensPedido só guarda o ProdutoID. Sem essa junção não seria possível multiplicar preço por quantidade.

A cláusula WHERE usa ItensPedido.PedidoID = PedidoID para filtrar apenas os itens do pedido informado, garantindo que a agregação seja feita somente sobre as linhas relevantes.

O resultado é retornado como um conjunto de linhas com a soma total do pedido; a construção é sintaticamente correta para o MySQL e eficiente por filtrar antes da agregação.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo